Come posso sapere se un sistema si è riavviato e l'ora del riavvio guardando i registri di sistema?


14

Come posso sapere se un sistema Linux si è riavviato e determinare l'ora del riavvio guardando i registri di sistema, come /var/log/messages?


Riavviato come? Tramite un comando console? Perdita di potenza? Errore hardware?
Devicenull,

@devicenull: penso che dovrebbe essere tutto quanto sopra, perché è utile rispondere a domande come "Quando è tornata la corrente?" "L'ingegnere ha fatto COSA? Quando è successo?"
Stefan Lasiewski,

Risposte:


24

Molto, molto facile. Il lastcomando viene analizzato/var/log/wtmp l'attività dell'utente incluso il riavvio pseudo-utente.

Usa il comando: last reboot

Vedi man lastper maggiori informazioni. http://linux.die.net/man/1/last

Lo pseudo utente riavvia l'accesso ogni volta che il sistema viene riavviato. Pertanto, l'ultimo riavvio mostrerà un registro di tutti i riavvii dalla creazione del file di registro.

Se il file / var / log / wtmp è stato ruotato dall'ultimo riavvio, è possibile visualizzare i riavvii precedenti utilizzando last -f /var/log/wtmp.1 reboot.


Ciao Aaron, grazie per il tuo aiuto! Ho provato "ultimo riavvio" sul mio sistema e ho ottenuto questo: "wtmp inizia gio 1 marzo 11:10:40 2012", tuttavia "uptime" mi ha dato questo: "17:29:21 6 giorni, 9:24, 7 utenti, caricamento media: 0,00, 0,01, 0,05 ". L'ora corrente sul mio sistema è 17:31 1 marzo, MST. Quindi sembra che "l'ultimo riavvio" abbia pensato che il sistema è stato riavviato meno di un giorno fa, il che non è proprio vero ... Puoi dirmi di più su come "ultimo" determina il tempo di riavvio? Grazie!
Jack Z

2
Quel timestamp non indica un riavvio. Vedresti una linea che sembra reboot system boot [kernel] [date]. Quindi questo ti sta dicendo quanto tempo fa va indietro wtmp e che non ci sono stati riavvii dall'inizio del log. Forse il registro è stato ruotato il 1 ° marzo?
Aaron Copley

Dev'essere lol che ho provato su alcuni altri sistemi e alcuni di essi mostrano linee come questa: riavvia l'avvio del sistema 2.6.27.19-5-defa gio 14 lug 04:10 (64 + 12: 37). Molte grazie!
Jack Z

9

Varia da distribuzione a distribuzione. A volte / var / log / {messaggi, syslog, dmesg} lo includerà. Per uno che ho appena riavviato, le mie ultime 2 righe e le prime dopo il riavvio sono:

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 così via. Ciò mostra un normale arresto. Un arresto imprevisto potrebbe non dirti l'ora in cui è andato offline, ma puoi indovinare in base al divario tra l'ultimo messaggio e il primo a seconda di quanto è rumoroso il tuo sistema.


Grazie per l'aiuto! Quindi posso fare affidamento sul "kernel: [0.000000]" come indicatore per il riavvio del sistema?
Jack Z

5

Digita il uptimecomando

Questo ti dirà da quanto tempo il tuo sistema è attivo, così come le medie di carico.

Modifica: puoi anche cercare un /var/log/kern.log. Questo dovrebbe contenere solo messaggi del kernel, quindi sarà più facile trovare i messaggi di avvio.


Nota: se questo server è importante, dovresti prendere in considerazione l'implementazione di un server syslog centralizzato con qualcosa come Nagios per monitorare l'integrità del sistema e avvisarti delle interruzioni. Uso e adoro AlienVault, che include (i componenti sono opzionali): un server syslog, nagios, rilevamento delle intrusioni, scanner di vulnerabilità, tracciamento delle risorse e altro ancora.
InChargeOfIT

2

Cerca nei tuoi registri / var / log / messages o / var / log / boot il tempo di avvio del sistema. Un esempio da 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

1

Su Ubuntu, cerco la stringa \] Linux versionin /var/log/syslog.

Abbinerà le linee che assomigliano a questo:

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.