Gibt es ein Protokoll, das das Herunterfahren unter Linux aufzeichnet?

38

Ich habe mich gefragt, ob es unter Linux eine Protokolldatei gibt, die jedes Mal aufzeichnet, wenn der Computer heruntergefahren wird.

Der Grund, den ich frage, ist, dass ich einige Tests mache, bei denen es darum geht, wie lange mein Laptop-Akku unter bestimmten Bedingungen hält. Mein Laptop ist so konfiguriert, dass er sich automatisch ausschaltet, wenn noch etwa 10 Minuten Batteriestrom zur Verfügung stehen. Wenn also irgendwo eine Protokolldatei vorhanden ist, in der aufgezeichnet wird, wann der Computer heruntergefahren wird, erleichtert dies das Testen erheblich.

Ich verwende Ubuntu 10.04. Vielen Dank!

Michael
quelle

Antworten:

15

Die /var/log/messagesDatei sollte wirklich etwas mit Herunterfahren zu tun haben, zum Beispiel meine (CentOS 5) hat Zeilen wie diese:

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.

Überprüfen Sie Ihr /etc/syslog.confoder /etc/rsyslog.confoder ein Äquivalent, um sicherzustellen, dass Protokolle dort abgelegt werden. Wahrscheinlich benötigen Sie Root-Rechte, um die Protokolldateien zu lesen.

Auch wenn es nicht per se heruntergefahren wird, sollte der "letzte" Befehl Neustarts melden.

Befindet sich zum Zeitpunkt des letzten Herunterfahrens überhaupt nichts in den Protokollen?

Bedenken Sie zu Testzwecken, dass Ihr Computer aufgrund der von der Batterie gemeldeten Informationen, die möglicherweise nicht korrekt sind, nur noch 10 Minuten Zeit hat. Anstatt auf Herunterfahren zu warten, können Sie die ACPI-Informationen direkt anzeigen. Auf meinem Laptop ist es hier:

/proc/acpi/battery/BAT0/

Dort sehen die Dateien "state" und "info" interessant aus. Sie können die verbleibende Kapazität in der Statusdatei anzeigen, während Sie Ihren Laptop unter verschiedenen Bedingungen ausführen, um zu sehen, wie schnell er abfällt.

Ein weiterer
quelle
3
Sofern ich es nicht verpasse, wird in / var / log / messages keine Meldung zum Herunterfahren angezeigt. Die Meldung "Kernel-Protokollierung (Proc) gestoppt" wird manchmal, aber nicht immer angezeigt. Laufen last -xfunktioniert jedoch. Dieser Befehl zeigt eine Zeile an, die wie folgt aussieht: shutdown system down 2.6.32-23-generi Sun Jul 25 09:12 - 19:00 (-14815+-13: Vielen Dank für den Akku-Info-Tipp. Mein System hat auch dies, also muss ich das überprüfen! Diese Dateien werden anscheinend alle 5 Sekunden aktualisiert. Vielen Dank!
Michael
Danke noch einmal. Meine Ergebnisse sind hier: mangstacular.blogspot.com/2010/07/…
Michael
28

Wie wäre es mit Befehl last -x shutdown?

Janne Pikkarainen
quelle
5

Lassen Sie mich zunächst sagen, dass ich weiß, dass dies ein älterer Thread ist. Ich kommentiere nur, damit andere, die dies beim Stöbern im Netz finden (wie ich es heute getan habe), eine klare Antwort haben.

Zweitens beachten Sie bitte, dass der folgende Befehl eine schlechte Praxis ist und in die Kategorie "nutzlose Verwendung von Katze" (google search for it) fällt ...

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

Diese Zeile sollte geändert werden in:

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

grep und die meisten Unix / Linux-Befehle (sed, awk, etc ...) erfordern keine cat, um den Inhalt einer Datei zu lesen. Es reicht aus, den Dateipfad und -namen nach dem Befehl zu setzen, um ihn als Argument zu übergeben. Das Hinzufügen einer Pipe und eines weiteren externen Befehls (cat) ist nur Zeit- und Ressourcenverschwendung.

Verwenden Sie abschließend den letzten Befehl, um festzustellen, wo sich die Aufzeichnungen zu Herunterfahren und / oder Neustarten des Systems befinden, da dies genau der Zweck des Befehls ist. Es liest die Protokolldatei / var / log / wtmp für alle Anmelde- / Abmeldeeinträge. Da Herunterfahren und Neustarten tatsächlich ein Anmelde- / Abmeldeereignis auf Systemebene ist, werden sie hier aufgezeichnet. Gleiches gilt für das Herunterfahren der Root-Konsole. Es handelt sich um ein Abmeldeereignis.

Beispiel:

last -5 reboot shutdown root

Dadurch erhalten Sie die letzten 5 Einträge für Neustart, Herunterfahren und Root (einschließlich Herunterfahren der Konsole) im wtmp-Protokoll.

Ergebnis:

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

Ich hoffe das hilft jedem, der über diesen Thread stolpert. :-)

David Dreggors
quelle
Alternativ einfach last -xoder last -F -R -x runlevel. Zum Zwecke der Batterieüberwachung unter Ubuntu grep hooks /var/log/pm-suspend.logkann es auch nützlich sein, Suspend und Resume anzuzeigen. Leider speichert pm-powersave.log keine Zeiten, an denen Wechselstrom angeschlossen ist (es sei denn, Sie fügen Ihren eigenen Hook hinzu). help.ubuntu.com/community/PowerManagement/ReducedPower ist möglicherweise eine Lektüre wert.
Cedric Knight
In Bezug auf UUoC, $ CPU-Zeit << $ Brain-Zeit ...
MikeP
1
Jede Person, die von "nutzlosen Katzennutzungen" spricht, verbringt wahrscheinlich mehr Zeit, um auf die Tatsache hinzuweisen, als die gesamte CPU-Zeit, die alle Computer auf der Erde für nutzlose Katzennutzungen aufgewendet haben. - wie diese)
ndemou
4

Die Datei / var / log / messages sollte diese Informationen enthalten

Ennuikiller
quelle
In dieser Datei wurde nichts im Zusammenhang mit dem Herunterfahren gefunden. :( Ich habe versucht, alle anderen Dateien in diesem Verzeichnis mit dem Zeitstempel der Zeit grep -r "Jul 24 14:" /var/log/*
Michael
Die Datei existiert nicht auf Linux Mint Mate 17.
Eric Wang
2

Wenn Sie nachverfolgen möchten, wie lange Ihr Computer in der Vergangenheit aktiv war, können Sie so etwas wie uptimed verwenden.

Es wird mit einem Programm namens uprecords geliefert, das anzeigt, wie lange Ihr Computer schon eingeschaltet ist.

user43856
quelle
1

Hier ist ein Einzeiler, um alle Nachrichten des aktuellen Tages aufzulisten:

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

Dies wurde auf CentOS getestet, also YMMV.

Und natürlich gibt es last rebootund last shutdown(wie erwähnt), aber das ist zu einfach für meine Bedürfnisse (liefert nur Termine).

Nux
quelle
1

last reboot arbeitete für mich auf CentOS 6.7.

Wenn Sie das Jahr in der Ausgabe anzeigen möchten, ist es sinnvoll, wenn Sie mehr als ein Jahr Aufzeichnungen haben

last -F reboot

Ich stelle jedoch fest, dass der Schalter -F auf einigen Systemen wie Solaris nicht funktioniert. Es ist anscheinend ein Teil von GNUs letztem.

Vielen Dank an https://unix.stackexchange.com/a/97597/174520

Aaron Wallentine
quelle
0

Wenn kein Protokoll vorhanden ist, können Sie versuchen, ein 'date >> mylog' zum Shutdown-Skript hinzuzufügen (in einigen Fällen heißt es rc.shutdown).

oder es ist auch ein weg ohne prävalage nötig. Lauf:

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

und Schwanz Mylog bei der nächsten Sitzung.

Jokester
quelle