Systemverfügbarkeit beim letzten Systemstart

Systemverfügbarkeit beim letzten Systemstart

Wenn das System abrupt heruntergefahren wird. Kann man dann feststellen, wann es heruntergefahren wurde? Abrupt bedeutet aufgrund eines Stromausfalls oder aufgrund von Sysrq-Magic-Keys. Wenn ich alle paar Sekunden etwas protokolliere, habe ich eine Antwort, aber wenn nicht, gibt es dann eine andere Möglichkeit?

Ich verwende ein angepasstes konsolenbasiertes System. Kernel ist 5.3

Antwort1

Sie können anhand verschiedener Methoden feststellen, wann das System neu gestartet wurde: „Betriebszeit“, „letzter Neustart“ usw. Zu sagen, wann es heruntergefahren wurde, ist etwas schwieriger. Vorausgesetzt, Sie haben eine regelmäßige Systemprotokollierung über rsyslogd ausgeführt, können Sie das Modul immark als Ihre „alle paar Sekunden etwas protokollierende“ Routine verwenden, indem Sie Folgendes zu /etc/rsyslogd.conf hinzufügen:

$ModLoad immark
$MarkMessagePeriod <your time granularity here, in seconds>
$ActionWriteAllMarkMessages on

Sie können sich die Mühe auch sparen und stattdessen eines von zwei Dingen in der Nachrichtendatei ansehen. Wenn die Datei beim Systemstart rotiert wird, können Sie einfach mit „ls -l“ das Datum der vorherigen Version der Datei ansehen, um ziemlich genau zu erraten, wann das System aufgehört hat, in die Datei zu schreiben. Wenn Sie das Systemprotokoll nicht rotieren, können Sie die gleiche Genauigkeit erreichen, indem Sie sich den Zeitstempel der Zeile direkt vor der Zeile ansehen, die den Neustart anzeigt. Unsere Neustarts sehen ungefähr so ​​aus:

2020-03-29T03:20:01.529437-04:00 [hostname] rsyslogd: [origin software="rsyslogd" swVersion="8.24.0-41.el7_7.2" x-pid="1615" x-info="h
ttp://www.rsyslog.com"] rsyslogd was HUPed

Wenn das Herunterfahren nicht unerwartet war, wird es einfacher, da der Systemlogger eine Nachricht in das Protokoll schreibt, bevor er beendet wird.

Wenn Sie die Systemprotokollierung deaktiviert haben, ist das alles natürlich hinfällig. Wenn Sie immer noch Dinge in Systemprotokollen protokollieren, können Sie die Statistiken einiger der dort vorhandenen Dateien abrufen und anhand der Änderungszeiten ungefähr herausfinden, wann das System nicht mehr funktionierte:

root# stat /var/log/messages-01.gz
  File: '/var/log/messages-01.gz'
  Size: 185529          Blocks: 368        IO Block: 4096   regular file
Device: fd06h/64774d    Inode: 12689803    Links: 1
Access: (0640/-rw-r-----)  Uid: (    0/    root)   Gid: (658178/  mssgro)
Access: 2020-04-08 10:27:47.691311523 -0400
Modify: 2020-04-05 03:01:34.000000000 -0400  <=== that's what you're after ==
Change: 2020-04-07 18:16:40.252668164 -0400
 Birth: -

Wählen Sie aus den ausgewählten Dateien die aktuellste aus, und Sie können ziemlich genau abschätzen, wann das System gestoppt wurde.

Nur ein paar Ideen, ich hoffe, sie helfen.

verwandte Informationen