2010-07-24 20:12:11 +0000 2010-07-24 20:12:11 +0000
40
40

Gibt es ein Protokoll, das Shutdowns unter Linux aufzeichnet?

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

Der Grund, warum ich frage, ist, dass ich einige Tests durchführe, bei denen es darum geht, wie lange die Batterie meines Laptops unter bestimmten Bedingungen durchhält. Mein Laptop ist so konfiguriert, dass er sich automatisch ausschaltet, wenn noch etwa 10 Minuten Akkuleistung übrig sind. Wenn es also irgendwo eine Protokolldatei gibt, die aufzeichnet, wann der Computer heruntergefahren wird, würde das meine Tests sehr erleichtern.

Ich verwende Ubuntu 10.04. Danke!

Antworten (8)

29
29
29
2010-07-29 09:30:27 +0000

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

16
16
16
2010-07-24 21:43:43 +0000

Die Datei /var/log/messages sollte wirklich etwas in Bezug auf Shutdowns enthalten, meine (CentOS 5) hat zum Beispiel 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 Ihre /etc/syslog.conf oder /etc/rsyslog.conf oder ein Äquivalent, um sicherzustellen, dass die Logs dorthin gehen. Sie benötigen wahrscheinlich Root-Rechte, um die Log-Dateien zu lesen.

Auch wenn es sich nicht um Shutdowns per se handelt, sollte der Befehl “last” Reboots melden.

Steht in den Protokollen wirklich überhaupt nichts über den Zeitpunkt des letzten Herunterfahrens?

Für Ihre Tests sollten Sie bedenken, dass Ihr Computer nur aufgrund der Informationen, die der Akku meldet, weiß, dass er noch 10 Minuten Zeit hat, und dass diese Informationen korrekt sein können oder auch nicht. Anstatt auf das Herunterfahren zu warten, könnten Sie sich die ACPI-Informationen direkt ansehen. Auf meinem Laptop stehen sie hier:

/proc/acpi/battery/BAT0/

Darin sehen die Dateien “state” und “info” interessant aus. Sie könnten die verbleibende Kapazität in der “state”-Datei beobachten, während Sie Ihren Laptop unter verschiedenen Bedingungen laufen lassen, um zu sehen, wie schnell sie abfällt.

5
5
5
2015-03-26 14:50:50 +0000

Zunächst möchte ich sagen, dass ich weiß, dass dies ein älterer Thread ist. Ich kommentiere das nur, damit andere, die dies beim Stöbern im Netz finden (so wie ich heute), eine klare Antwort haben.

Zweitens, bitte beachten Sie, dass der folgende Befehl eine schlechte Praxis ist und unter die Kategorie “nutzlose Verwendungen von cat” (Google-Suche danach) 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…) benötigen cat nicht, um den Inhalt einer Datei zu lesen. Es genügt, den Dateipfad und -namen hinter den Befehl zu setzen, um ihn als Argument zu übergeben. Das Hinzufügen einer Pipe und eines weiteren externen Befehls (cat) ist nur verschwendete Zeit und Ressourcen.

Was schließlich die Frage betrifft, wo Sie eine Aufzeichnung von Systemabschaltungen und/oder Neustarts finden, verwenden Sie den letzten Befehl, da er genau dafür gedacht ist. Er liest die Protokolldatei /var/log/wtmp für alle Login-/Logout-Einträge. Da Shutdowns und Reboots eigentlich ein Login/Logout-Ereignis auf Systemebene sind, werden sie hier aufgezeichnet. Das Gleiche gilt für das Herunterfahren der Root-Konsole, es ist ein Logout-Ereignis.

Beispiel:

last -5 reboot shutdown root

Damit erhalten Sie die letzten 5 Reboot-, Shutdown- und Root-Einträge (einschließlich Konsolen-Shutdown) im wtmp-Log.

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, dies hilft jedem, der über diesen Thread stolpert :-)

4
4
4
2010-07-24 20:16:46 +0000

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

2
2
2
2010-07-25 01:22:07 +0000

wenn Sie verfolgen möchten, wie lange Ihr Computer in der Vergangenheit eingeschaltet war, können Sie etwas wie uptimed verwenden.

es wird ein Programm namens uprecords mitgeliefert, das Ihnen zeigt, wie lange Ihr Computer eingeschaltet war.

1
1
1
2017-01-19 18:02:30 +0000

last reboot funktionierte bei mir unter CentOS 6.7.

Um das Jahr in der Ausgabe anzuzeigen, so dass es tatsächlich Sinn macht, wenn Sie mehr als ein Jahr an Datensätzen haben, machen Sie

last -F reboot

Obwohl ich annehme, dass der Schalter -F auf einigen Systemen, wie Solaris, nicht funktioniert. Es ist aber anscheinend Teil von GNUs Last.

Danke an https://unix.stackexchange.com/a/97597/174520

1
1
1
2014-05-07 13:52:00 +0000

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 reboot und last shutdown (wie erwähnt), aber das ist zu einfach für meine Bedürfnisse (liefert nur Daten).

0
0
0
2010-07-24 21:15:36 +0000

Wenn kein Protokoll vorhanden ist, können Sie versuchen, ein ‘date >>mylog’ zum Shutdown-Skript hinzuzufügen (auf einigen Systemen heißt es rc.shutdown)

oder, es gibt auch einen Weg, ohne dass Voreinstellungen erforderlich sind. ausführen:

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

und tail mylog bei der nächsten Sitzung.