¿Cómo puedo saber si un sistema se reinició y el momento del reinicio mirando los registros del sistema?

14

¿Cómo puedo saber si un sistema Linux se reinició y determinar la hora del reinicio mirando los registros del sistema, por ejemplo /var/log/messages?

Jack Z
fuente
Reiniciado cómo? ¿A través de un comando de consola? ¿Pérdida de potencia? ¿Fallo de hardware?
devicenull
@devicenull: Creo que debería ser todo lo anterior, porque es útil para responder preguntas como "¿Cuándo volvió el poder?" "¿El ingeniero hizo QUÉ? ¿Cuándo sucedió esto?"
Stefan Lasiewski

Respuestas:

24

Muy, muy fácil. El lastcomando analiza /var/log/wtmpla actividad del usuario, incluido el reinicio de pseudousuario.

Usa el comando: last reboot

Ver man lastpara más información. http://linux.die.net/man/1/last

El reinicio del pseudo usuario inicia sesión cada vez que se reinicia el sistema. Por lo tanto, el último reinicio mostrará un registro de todos los reinicios desde que se creó el archivo de registro.

Si el archivo / var / log / wtmp se rotó desde su último reinicio, puede ver reinicios anteriores utilizando last -f /var/log/wtmp.1 reboot.

Aaron Copley
fuente
Hola Aaron, gracias por tu ayuda! Intenté el "último reinicio" en mi sistema y obtuve esto: "wtmp comienza el jueves 1 de marzo 11:10:40 2012", sin embargo, "tiempo de actividad" me dio esto: "17:29:21 hasta 6 días, 9:24, 7 usuarios, promedio de carga: 0.00, 0.01, 0.05 ". La hora actual en mi sistema es 17:31 1 de marzo, MST. Entonces parece que el "último reinicio" pensó que el sistema se reinició hace menos de un día, lo cual no es realmente cierto ... ¿Puede decirme más acerca de cómo "último" determina el tiempo de reinicio? ¡Gracias!
Jack Z
2
Esa marca de tiempo no indica un reinicio. Verías una línea que se parece reboot system boot [kernel] [date]. Entonces, esto le dice qué tan atrás va wtmp y que no ha habido reinicios desde que comenzó el registro. ¿Quizás el registro rotó el 1 de marzo?
Aaron Copley
Eso debe ser jajaja que probé en algunos otros sistemas y algunos de ellos muestran líneas como esta: reiniciar el arranque del sistema 2.6.27.19-5-defa jue 14 jul 04:10 (64 + 12: 37). ¡Muchas gracias!
Jack Z
9

Varía de distribución a distribución. Algunas veces / var / log / {messages, syslog, dmesg} lo incluirá. Para uno que acabo de reiniciar, mis últimas 2 líneas y las primeras después del reinicio son:

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:

... y así. Eso muestra un apagado normal. Es posible que un apagado inesperado no le indique la hora en que se desconectó, pero puede adivinar en función de la brecha entre el último mensaje y el primero, dependiendo de qué tan ruidoso sea su sistema.

Jeff Ferland
fuente
¡Gracias por tu ayuda! Entonces, ¿puedo confiar en el "kernel: [0.000000]" como indicador para reiniciar el sistema?
Jack Z
5

Escribe el uptimecomando.

Esto le dirá cuánto tiempo ha estado funcionando su sistema, así como los promedios de carga.

Editar: también puede buscar un /var/log/kern.log. Esto debería contener solo mensajes del núcleo, por lo que será más fácil encontrar los mensajes de arranque.

InChargeOfIT
fuente
Nota: Si este servidor es importante, debería considerar implementar un servidor syslog centralizado con algo como Nagios para monitorear el estado del sistema y alertarlo de interrupciones. Yo uso y amo AlienVault, que incluye (los componentes son opcionales): un servidor syslog, nagios, detección de intrusos, escáner de vulnerabilidades, seguimiento de activos y más.
InChargeOfIT
2

Busque en sus / var / log / messages o / var / log / boot logs para el momento del inicio del sistema. Un ejemplo de 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
fuente
1

En Ubuntu, busco la cadena \] Linux versionen /var/log/syslog.

Emparejará líneas que se parecen a esto:

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
fuente