it-swarm.com.de

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

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!

34
Michael

Die /var/log/messages-Datei sollte wirklich etwas in Bezug auf Herunterfahren enthalten, 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 Ihren /etc/syslog.conf oder /etc/rsyslog.conf oder einen vergleichbaren Wert, 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.

Enthalten die Protokolle zum Zeitpunkt des letzten Herunterfahrens überhaupt nichts?

Bedenken Sie beim Testen, 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.

13
A N Other

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

25

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 Internet finden (wie ich es heute getan habe), eine klare Antwort haben.

Zweitens beachten Sie bitte, dass der folgende Befehl keine gute 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 einzufügen, 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 das ist, wofür er bestimmt ist. Es liest die/var/log/wtmp-Protokolldatei für alle Login-/Logout-Einträ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. :-)

5
David Dreggors

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

4
ennuikiller

wenn Sie nachverfolgen möchten, wie lange Ihr Computer bereits 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.

2
user43856

last reboot hat für mich unter CentOS 6.7 funktioniert.

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

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

1
Nux

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.

0
Jokester