Esiste un registro che registra gli arresti in Linux?


38

Mi chiedevo se esiste un file di registro in Linux che registra ogni volta che il computer viene spento?

Il motivo che sto chiedendo è che sto facendo alcuni test che riguardano la durata della batteria del mio laptop in determinate condizioni. Il mio laptop è configurato per spegnersi automaticamente quando rimangono circa 10 minuti di carica della batteria, quindi se c'è un file di registro da qualche parte che registra quando il computer è spento, questo renderà i miei test molto più facili.

Sto eseguendo Ubuntu 10.04. Grazie!

Risposte:


15

Il /var/log/messagesfile dovrebbe davvero contenere qualcosa relativo agli arresti, ad esempio il mio (CentOS 5) ha linee come questa:

Jul 18 23:00:13 nero shutdown[2649]: shutting down for system halt
...
Jul 18 23:00:27 nero kernel: Kernel logging (proc) stopped.
Jul 18 23:00:27 nero kernel: Kernel log daemon terminating.

Controlla il tuo /etc/syslog.confo /etc/rsyslog.confequivalente per assicurarti che i registri vadano lì. Probabilmente avrai bisogno dei privilegi di root per leggere i file di registro.

Inoltre, sebbene non si tratti di arresti di per sé, il comando "last" dovrebbe riportare i riavvii.

Non c'è davvero niente nei registri circa l'ultima volta che hai chiuso?

Per i tuoi test, tieni presente che il tuo computer sa solo che sono rimasti 10 minuti a causa delle informazioni che la batteria sta segnalando, che possono o meno essere accurate. Invece di attendere gli arresti, è possibile guardare direttamente le informazioni ACPI. Sul mio laptop è qui:

/proc/acpi/battery/BAT0/

Lì, i file "state" e "info" sembrano interessanti. È possibile guardare la capacità rimanente nel file di stato mentre si esegue il laptop in varie condizioni per vedere la velocità con cui scende.


3
A meno che non mi manchi, non vedo alcun tipo di messaggio di "spegnimento" in / var / log / messages. Il messaggio "Log del kernel (proc) arrestato" a volte appare, ma non sempre. Tuttavia, l'esecuzione last -xfunziona. Questo comando visualizza una riga simile alla seguente: shutdown system down 2.6.32-23-generi Sun Jul 25 09:12 - 19:00 (-14815+-13: Grazie per l'informazione sulla batteria. Anche il mio sistema ha questo, quindi dovrò verificarlo! Sembra aggiornare questi file ogni 5 secondi circa. Grazie!
Michael,

Grazie ancora. I miei risultati sono qui: mangstacular.blogspot.com/2010/07/…
Michael


5

Innanzitutto, vorrei iniziare dicendo che so che questo è un thread più vecchio. Ho solo un commento in modo che altri che lo trovino mentre frugano in rete (come ho fatto oggi) avranno una risposta chiara.

In secondo luogo, tieni presente che il seguente comando è una cattiva pratica e rientra nella categoria "usi inutili di gatto" (ricerca di Google) ...

cat /var/log/messages | grep "`LC_ALL=en_en.utf8 date +"%b %e"`"

Quella riga dovrebbe essere cambiata in:

grep "`LC_ALL=en_en.utf8 date +"%b %e"`" /var/log/messages

grep e la maggior parte dei comandi unix / linux (sed, awk, ecc ...) del resto non richiedono che cat legga il contenuto di un file. È sufficiente posizionare il percorso e il nome del file dopo il comando per passarlo come argomento. Aggiungere una pipe e un altro comando esterno (cat) è solo tempo e risorse sprecate.

Infine, per sapere dove trovare un registro degli arresti e / o dei riavvii del sistema, utilizzare l'ultimo comando poiché è esattamente quello per cui è destinato. Legge il file di registro / var / log / wtmp per tutte le voci di accesso / disconnessione. Poiché arresti e riavvii sono in realtà un evento di accesso / disconnessione a livello di sistema, vengono registrati qui. Lo stesso vale per l'arresto della console principale, è un evento di disconnessione.

Esempio:

last -5 reboot shutdown root

Questo ti darà le ultime 5 voci di riavvio, arresto e root (arresto della console incluso) nel registro wtmp.

Risultato:

reboot    ~                         Mon Mar 23 14:51
shutdown  ~                         Mon Mar 23 14:49
root      console                   Mon Mar 23 14:49 - shutdown  (00:00)
reboot    ~                         Mon Mar 16 09:54
shutdown  ~                         Thu Mar 12 17:41

Spero che questo aiuti chiunque si imbatte in questo thread. :-)


In alternativa semplicemente last -xo last -F -R -x runlevel. Ai fini del monitoraggio della batteria sotto Ubuntu, grep hooks /var/log/pm-suspend.logpuò anche essere utile mostrare sospendere e riprendere. Sfortunatamente, pm-powersave.log non memorizza le volte in cui è collegata l'alimentazione CA (a meno che non si aggiunga il proprio hook). help.ubuntu.com/community/PowerManagement/ReducedPower potrebbe valere la pena di essere letto.
Cedric Knight,

Per quanto riguarda UUoC, $ CPU time << $ Brain time ...
MikeP

1
Ogni persona che menziona "usi inutili del gatto" sta probabilmente impiegando più tempo a indicare il fatto rispetto al tempo totale della CPU dedicato agli usi inutili del gatto da parte di tutti i computer sulla terra (e a volte gonfiano inutilmente la loro risposta altrimenti piacevole come effetto collaterale - - come questo)
ndemou,

4

Il file / var / log / messages dovrebbe contenere queste informazioni


Non ho visto nulla in quel file relativo allo spegnimento. :( Ho provato a trascinare tutti gli altri file in quella directory usando il timestamp del tempo in cui ho spento il computer, ma senza fortuna:grep -r "Jul 24 14:" /var/log/*
Michael

Il file non esiste su Linux, compagno di zecca 17.
Eric Wang,

2

se vuoi tenere traccia di quanto tempo il tuo computer è rimasto attivo in passato, puoi usare qualcosa di simile a uptimed.

viene fornito con un programma chiamato uprecords che ti mostra da quanto tempo il tuo computer è acceso.


1

Ecco una riga per elencare tutti i messaggi del giorno corrente:

cat /var/log/messages | grep "`LC_ALL=en_en.utf8 date +"%b %e"`"

Questo è stato testato su CentOS quindi YMMV.

E ovviamente c'è last reboote last shutdown(come detto), ma questo è troppo semplice per le mie esigenze (fornisce solo date).


1

last reboot ha lavorato per me su CentOS 6.7.

Per mostrare l'anno in uscita, quindi ha senso se hai più di un anno di record, fallo

last -F reboot

Anche se capisco che l'opzione -F non funziona su alcuni sistemi, come Solaris. Apparentemente fa parte dell'ultimo di GNU, però.

Grazie a https://unix.stackexchange.com/a/97597/174520


0

se non è presente alcun registro, puoi provare ad aggiungere un po 'di' data >> miolog 'allo script di spegnimento (in alcune dist, si chiama rc.shutdown)

o c'è anche un modo senza previlage necessario. correre:

while [ 1 ];do sleep 5;date>mylog;sync;done

e tail mylog alla prossima sessione.

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.