Qual é a maneira independente de determinar a data de instalação do sistema operacional?


10

Estou em uma máquina CrunchBang e tentando escrever um script que precisa ter a data de instalação do SO como referência.

Eu procurei e encontrei este comando:

ls -lct /etc | tail -1 | awk '{print $6, $7, $8}'

Imprime

Mar 31 21:24

Eu não entendi a tail -1parte, mas consegui descobrir que $ 6 $ 7 $ 8 são as 6as e 7as ocorrências da última linha que o comando está referenciando.

No entanto, percebi que o ano não pode ser incluído, pois o ano não foi exibido no ls -ltccomando.

Algumas pessoas sugeriram que a data /etcfosse criada e algumas verificassem o /var/log/syslogetc. Eu pensei que isso poderia ser um pouco específico para a distribuição.

Qual é a sua recomendação para uma maneira verdadeiramente independente de encontrar a data de instalação do SO?


1
Por que você acha que /etca data de criação da verificação é específica da distribuição?
Kevin

Recentemente, li que existem algumas distros que têm uma hierarquia de sistema de arquivos diferente, como o gobolinux, e tinha a impressão de que poderia haver mais distros semelhantes ao gobolinux.
Animesh 02/04

1
Eu acho que verificar / etc é mais portátil do que assumir um sistema de arquivos ext. Ou apenas verifique o diretório mais antigo em /.
Kevin

1
Apenas para completar, observarei que a saída de ls mostra o momento em que ele tem menos de seis meses e o ano em que ele tem mais de seis meses.
usar o seguinte código

@ Kevin se você descompactar um arquivo preservando as permissões, o diretório / arquivo mais antigo poderá ser muito mais antigo que a data de instalação do sistema.
Scai

Respostas:


8

Se a suposição for de que você possui um sistema de arquivos ext {2,3,4} e formatou o sistema de arquivos raiz quando instalou o sistema operacional (e não fez atualizações de outro sistema operacional sem uma limpeza), pode usar o dumpe2fs:

% dumpe2fs -h /dev/mapper/vg_desktop-lv_root 2>&1 |grep 'Filesystem created'
Filesystem created:       Sat Jul 23 04:28:07 2011

A saída estava sendo redirecionada para algum lugar ou arquivo, porque nada aconteceu quando executo o comando.
Animesh

Você precisará fornecer o dispositivo para o seu sistema de arquivos raiz, em vez de / dev / mapper / vg_desktop-lv_root. Verifique a saída de df /para obtê-lo. Tenho certeza que você pode automatizá-lo.
Jsbillings

Percebi que tinha um em _vez de -digitar o comando. Eu recebo a data agora. Obrigado.
Animesh

Ou que você não fez backup, reformatação e restauração.
Psusi

3
Meu sistema de arquivos é reiserfs. Imho, procurar / etc é uma abordagem melhor.
usuário desconhecido

0

Não conheço nenhum método formal para isso.

O que eu sempre fiz é:

touch /install-`date +"%F"` && chattr +i /install-20*

Isso cria um arquivo chamado 'install-' seguido da data atual (se hoje for executado, seria install-2012-04-03) e o define como imutável, para que não possa ser excluído por acidente.

Então é só uma questão de olhar para esse arquivo para ver quando o sistema operacional foi instalado.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.