Como posso saber se um sistema foi reiniciado, bem como a hora da reinicialização, observando os logs do sistema?

14

Como posso saber se um sistema Linux foi reiniciado e determinar a hora da reinicialização observando os logs do sistema, como /var/log/messages?

Jack Z
fonte
Reiniciado como? Via um comando do console? Perda de energia? Falha de hardware?
Devicenull 29/02/2012
@ devicenull: Eu acho que deveria ser tudo o que precede, porque é útil responder a perguntas como "Quando o poder voltou a ligar?" "O engenheiro fez O QUE? Quando isso aconteceu?"
Stefan Lasiewski

Respostas:

24

Muito, muito fácil. O lastcomando analisa /var/log/wtmpa atividade do usuário, incluindo a reinicialização de pseudo-usuário.

Use o comando: last reboot

Veja man lastpara mais informações. http://linux.die.net/man/1/last

A reinicialização do pseudo usuário faz logon sempre que o sistema é reiniciado. Portanto, a última reinicialização mostrará um log de todas as reinicializações desde que o arquivo de log foi criado.

Se o arquivo / var / log / wtmp tiver sido girado desde a última reinicialização, você poderá ver reinicializações anteriores usando last -f /var/log/wtmp.1 reboot.

Aaron Copley
fonte
Olá Aaron, obrigado pela sua ajuda! Tentei a "última reinicialização" no meu sistema e obtive o seguinte: "wtmp começa em 1 de março às 11:10:40 2012", no entanto, o "tempo de atividade" me deu o seguinte: "17:29:21 até 6 dias, 9:24, 7 usuários, média de carga: 0,00, 0,01, 0,05 ". O horário atual no meu sistema é 17:31 de 1º de março, MST. Parece que a "última reinicialização" pensou que o sistema foi reiniciado há menos de um dia, o que não é realmente verdade ... Você pode me dizer mais sobre como a "última" determina o tempo de reinicialização? Obrigado!
Jack Z
2
Esse carimbo de data / hora não está indicando uma reinicialização. Você veria uma linha que se parece reboot system boot [kernel] [date]. Portanto, isso está dizendo a que distância o wtmp vai e que não houve reinicializações desde o início do log. Talvez o registro tenha girado em 1º de março?
Aaron Copley
Deve ser isso, lol, tentei em alguns outros sistemas e alguns deles mostram linhas como esta: reinicie o sistema de inicialização 2.6.27.19-5-defa qui 14 jul 04:10 (64 + 12: 37). Muito obrigado!
Jack Z
9

Isso varia de distribuição para distribuição. Às vezes / var / log / {messages, syslog, dmesg} irá incluí-lo. Para uma que acabei de reiniciar, minhas duas últimas linhas e as primeiras após a reinicialização são:

Feb 29 13:16:07 hostname kernel: Kernel logging (proc) stopped.
Feb 29 13:16:07 hostname rsyslogd: [origin software="rsyslogd" swVersion="5.8.1" x-pid="592" x-info="http://www.rsyslog.com"] exiting on signal 15.
Feb 29 13:23:15 hostname kernel: imklog 5.8.1, log source = /proc/kmsg started.
Feb 29 13:23:15 hostname rsyslogd: [origin software="rsyslogd" swVersion="5.8.1" x-pid="572" x-info="http://www.rsyslog.com"] start
Feb 29 13:23:15 hostname rsyslogd: rsyslogd's groupid changed to 103
Feb 29 13:23:15 hostname rsyslogd: rsyslogd's userid changed to 101
Feb 29 13:23:15 hostname rsyslogd-2039: Could no open output pipe '/dev/xconsole' [try http://www.rsyslog.com/e/2039 ]
Feb 29 13:23:15 hostname kernel: [    0.000000] Initializing cgroup subsys cpuset
Feb 29 13:23:15 hostname kernel: [    0.000000] Initializing cgroup subsys cpu
Feb 29 13:23:15 hostname kernel: [    0.000000] Linux version 3.0.0-12-server (buildd@crested) (gcc version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3) ) #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 (Ubuntu 3.0.0-12.20-server 3.0.4)
Feb 29 13:23:15 hostname kernel: [    0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.0.0-12-server root=/dev/mapper/hostname-root ro
Feb 29 13:23:15 hostname kernel: [    0.000000] KERNEL supported cpus:
Feb 29 13:23:15 hostname kernel: [    0.000000]   Intel GenuineIntel
Feb 29 13:23:15 hostname kernel: [    0.000000]   AMD AuthenticAMD
Feb 29 13:23:15 hostname kernel: [    0.000000]   Centaur CentaurHauls
Feb 29 13:23:15 hostname kernel: [    0.000000] Disabled fast string operations
Feb 29 13:23:15 hostname kernel: [    0.000000] BIOS-provided physical RAM map:

... e assim por diante. Isso mostra um desligamento normal. Um desligamento inesperado pode não lhe dizer a hora em que ficou offline, mas você pode adivinhar com base na diferença entre a última mensagem e a primeira, dependendo de quão barulhento é o seu sistema.

Jeff Ferland
fonte
Obrigado pela ajuda! Então, posso confiar no "kernel: [0.000000]" como um indicador para a reinicialização do sistema?
Jack Z
5

Digite o uptimecomando

Isso informará quanto tempo seu sistema está funcionando, bem como as médias de carga.

Editar: você também pode procurar um /var/log/kern.log. Isso deve conter apenas mensagens do kernel, para que seja mais fácil encontrar as mensagens de inicialização.

InChargeOfIT
fonte
Nota: Se esse servidor for importante, considere implementar um servidor syslog centralizado com algo como o Nagios para monitorar a integridade do sistema e alertá-lo sobre interrupções. Eu uso e amo o AlienVault, que inclui (os componentes são opcionais): um servidor syslog, nagios, detecção de intrusão, scanner de vulnerabilidades, rastreamento de ativos e muito mais.
InChargeOfIT
2

Procure nos seus logs / var / log / messages ou / var / log / boot o tempo de inicialização do sistema. Um exemplo do CentOS 6 ...

Feb 28 23:05:56 dev0 kernel: imklog 4.6.2, log source = /proc/kmsg started.
Feb 28 23:05:56 dev0 rsyslogd: [origin software="rsyslogd" swVersion="4.6.2" x-pid="1557" x-info="http://www.rsyslog.com"] (re)start
ewwhite
fonte
1

No Ubuntu, procuro a string \] Linux versionem /var/log/syslog.

Ele corresponderá a linhas que se parecem com isso:

27 Jun 2017 12:33:42.268 Hostname:my-hostname : [ 0.000000] Linux version 3.13.0-100-generic (buildd@lgw01-52) (gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) ) #147-Ubuntu SMP Tue Oct 18 16:48:51 UTC 2016 (Ubuntu 3.13.0-100.147-generic 3.13.11-ckt39) Context
Teemu Leisti
fonte