Descobrir a que horas a minha máquina foi reiniciada e porquê?

1

Eu tenho minha máquina Ubuntu que está executando o Ubuntu 10.10 e essa máquina está executando o meu servidor de aplicativos.

Estou suspeitando que minha máquina foi reinicializada hoje em algum momento, mas não sei como descobrir a que horas minha máquina foi reinicializada hoje? E se ele foi reiniciado, quem reiniciou e por que foi reiniciado? Existe alguma maneira de descobrir esses detalhes?

Eu tentei usar uptime e é isso que eu recebi, o que significa que minha máquina está ativa desde 20 horas e 21 minutos (estou certo?)

david@machineA:~$ uptime
 22:55:37 up 20:21,  3 users,  load average: 0.01, 0.05, 0.01

Alguém pode me fornecer alguns passos, como posso descobrir esses detalhes?

    
por arsenal 06.11.2014 / 07:05

2 respostas

2

O primeiro campo de /proc/uptime é seu amigo para quando (vá lê-lo com cat /proc/uptime ). É uma contagem de segundos que o seu sistema está ativo. O segundo campo desse arquivo é quantos cpusegundos estiveram inativos em seu sistema (divida-o pelo número de CPUs listadas em /proc/cpuinfo nesse sistema para obter segundos reais).

# if your awk is new enough, 1 second resolution.
awk '//{print strftime("%c",systime()-$1)}' /proc/uptime 
# for older awk, but requires bc binary, high resolution
date -d @$(echo $(date +%s.%N) - $(awk '{print $1}' /proc/uptime) |bc )
# older awk, 1 second resolution, no bc
date -d @$(( $(date +%s) - $(awk '{printf "%d",$1}' /proc/uptime) ))

Imprime o tempo de inicialização do seu sistema dentro de um segundo. Eu digo dentro de 1 segundo, porque o é fracional, e o awk retorna somente systime como um inteiro.

Isso não diz quem ou por que foi reiniciado. O melhor que você pode fazer para isso é a saída do comando last , que registrará os desligamentos e reinicializações normais; bem como sessões perdidas como resultado de uma reinicialização difícil (por exemplo, power blip, bug do kernel). Eles não são confiáveis, pois dependem de ninguém adulterar os arquivos /var/log/wtmp* .

Veja um exemplo de uma sessão perdida:

root@nms1:~# last -f /var/log/wtmp.1
root     pts/0        10.x.y.z      Mon Oct 27 05:41    gone - no logout 
root     pts/0        10.x.y.z      Mon Oct 20 04:55 - 16:47  (11:51)    

E aqui está um exemplo de reinicialização.

[root@freepbx ~]# last
...
reboot   system boot  2.6.32-431.el6.x Mon Oct 20 13:46 - 16:13 (3+02:27)   
root     pts/2        10.x.y.z      Wed Oct 15 21:02 - 00:51 (2+03:48)   
root     pts/1        10.x.y.z      Wed Oct 15 14:17 - 00:51 (2+10:33)   
sitkasta pts/0        10.x.y.z      Tue Oct 14 20:23 - down  (5+17:22)   
root     pts/0        10.x.y.z      Tue Oct 14 10:43 - 20:22  (09:39)    

Se você quiser algo mais, veja algo como a estrutura audit e envie os comandos reboot / shutdown para um & confiável & proteger o destino de registro remoto.

    
por 06.11.2014 / 07:16
0

Use o comando abaixo para encontrar o tempo de inatividade da máquina.

uprecords

A hora que não é mostrada na lista é o tempo de reinicialização.

    
por 06.11.2014 / 08:00