Como determinar a “idade” de um sistema linux desde a instalação?

38

Eu achei que poderia verificar facilmente o registro de data e hora de arquivos específicos. Então percebi que não seria tão fácil quando eu visualizasse timestamps como 1991 .

    
por lisak 12.01.2011 / 03:31

6 respostas

46

A maneira mais simples provavelmente seria (supondo que sda1 é seu / root /):

tune2fs -l /dev/sda1 | grep created

Isso deve mostrar a data em que o sistema de arquivos foi criado. Confirmado para trabalhar no ext2 para ext4, não tenho certeza sobre outros sistemas de arquivos!

    
por 12.01.2011 / 03:35
13

Um mecanismo que geralmente uso é verificar o tempo de alteração (ctime) dos arquivos dentro do diretório raiz. Como o diretório inicial /root é criado no momento da instalação e é freqüentemente usado raramente, isso pode fornecer uma aproximação relativamente boa. Como esclarecido por Kyle nos comentários, já que ctime se refere ao inode, e não aos dados, modificar o conteúdo do arquivo não alterará o ctime.

Por padrão, o comando ls imprime a hora da modificação (mtime) do arquivo. Então, se substituir na opção ctime assim,

ls -alct /root

Isso imprimirá todos os arquivos, exibirá o tempo de criação e classificará por hora.

Como exemplo, aqui está uma amostra dos 3 arquivos mais antigos no diretório /root de um dos meus sistemas.

ls -alt install.log.syslog .cshrc .tcshrc
-rw-r--r--. 1 root 10238 Feb 18  2010 install.log.syslog
-rw-r--r--. 1 root   129 Dec  3  2004 .tcshrc
-rw-r--r--. 1 root   100 Sep 22  2004 .cshrc

E depois, verificando o horário de alteração

ls -alct install.log.syslog .cshrc .tcshrc
-rw-r--r--. 1 root   100 Feb 18  2010 .cshrc
-rw-r--r--. 1 root 10238 Feb 18  2010 install.log.syslog
-rw-r--r--. 1 root   129 Feb 18  2010 .tcshrc

A data 18 de fevereiro de 2010 certamente acompanha o tempo aproximado em que eu teria instalado o sistema pela primeira vez.

    
por 12.01.2011 / 03:54
6

tente

ls -alp /etc/ssh/ssh_host_dsa_key.pub | cut -d " " -f6

as chaves são geradas quando você instala o sistema operacional.

    
por 12.01.2011 / 15:24
3

Verificar o hardware seria uma boa aposta, se você tiver acesso a ele. Você pode inspecionar o sistema e / ou os componentes de hardware para ter uma boa ideia de quando foi montado.

Como alternativa, se você pode acessar a tela da BIOS, muitas vezes existem informações de data que podem ser usadas para determinar a idade de uma máquina.

Se você conseguir acessar as informações da SMART no disco rígido ( smartctl -a /dev/sda ), pode haver algo a ser feito. Não vejo um timestamp específico no SMART, mas há pelo menos um contador de horas de uso. Isso forneceria um limite inferior para a idade da máquina (desde que o disco rígido esteja funcionando por 100 horas, o sistema não pode ter menos de 100 horas).

Quanto às verificações de sistema de arquivos, você pode olhar as informações de data para /lost+found - esse diretório foi criado quando o sistema de arquivos foi criado. A data deve concordar com as informações do tunefs da resposta anterior.

    
por 12.01.2011 / 03:50
3

Com o RedHat e derivados, é muito fácil obter uma ideia geral da versão do sistema operacional / vintage através de uma combinação de idade do arquivo e outros arquivos do sistema. Geralmente, verifico o arquivo /root/anaconda-ks.cfg , pois ele contém a configuração inicial do servidor e os parâmetros do pacote. Às vezes, uname -a terá boas informações sobre a data de criação do kernel. Também haveria um cluster de arquivos com a mesma data em /etc ; tipicamente os links rcx.d, scripts rc, inittab, etc.

    
por 12.01.2011 / 04:44
3

Isso também funciona para sistemas Red Hat:

rpm -qi basesystem | grep "Install Date"
    
por 01.08.2012 / 21:08