Gibt es eine Möglichkeit, die Gesamtlaufzeit eines Linux-Systems aus dem BIOS oder der CPU zu lesen?
Ich habe BIOS-Informationen nach dmidecode durchsucht. Aber es gibt ein Veröffentlichungsdatum, das für meine Frage nicht angemessen ist.
Dann habe ich ausgecheckt /proc
. Es enthält jedoch nur die Betriebszeitwerte vom letzten Neustart. Möglicherweise kann das Schreiben dieser Verfügbarkeitswerte für jeden Start eine Option sein.
Dann habe ich nachgesehen dumpe2fs
. Es gibt die Gesamtlaufzeit einer bestimmten Festplatte an. Es ist für mich nutzlos, da die Festplatte geändert werden kann, während meine Anwendung ausgeführt wird.
Wie kann ich mit Ausnahme der oben genannten die Gesamtlaufzeit meines Systems lesen oder berechnen? Wo kann ich lesen?
Antworten:
Soweit mir bekannt ist, verfolgt die Firmware dies nicht. Selbst BMCs messen nicht die Gesamtverfügbarkeit.
Dies hilft nicht bei früheren Betriebszeiten von früheren Starts, aber Sie können jetzt mit der Aufzeichnung von Betriebszeiten beginnen, indem Sie ein Tool wie installieren
uptimed
und es so einrichtenLOG_MAXIMUM_ENTRIES
, dass niemals Werte verworfen werden ( auf 0 Zoll gesetztuptimed.conf
). Dadurch wird die Betriebszeit des Betriebssystems gemessen, nicht die gesamte CPU-Einschaltzeit, aber sie sollte nahe genug sein ... Sobald Sie ausgeführt habenuptimed
, können Sieuprecords
beispielsweise die Gesamtsummen anzeigenWie von quixotic hervorgehoben , können Sie sich anhand Ihrer Protokolle ein Bild von der historischen Betriebszeit machen. Wenn Sie systemd ausführen, können Sie die mit protokollierten Starts anzeigen
journalctl --list-boots
. Durch die Protokollrotation wird jedoch wahrscheinlich eine Menge Betriebszeit verpasst.Wie von JdeBP hervorgehoben , erhalten Sie
last reboot
möglicherweise eine längere Liste von Stiefeln mit der damit verbundenen Betriebszeit.quelle
journald
könnte hier nützlich sein. Stromausfälle, schwere Abstürze oder andere nicht gekennzeichnete Systemstopps können diese Gewässer trüben.uptimed
, was nicht klar war. Ich habe meine Antwort aktualisiert.last reboot
sollte es funktionieren und die Daten, die in den alten Binärprotokollen (die weit weniger scrollen) aufgezeichnet sind , von anzeigensystemd-update-utmp
.last reboot
funktioniert, werden Systemabstürze nicht gut behandelt. Wenn ein System um 07:00 Uhr gestartet wird und abstürzt oder um 08:00 Uhr abrupt ausgeschaltet wird, aber erst um 10:00 Uhr neu gestartet wird, werden die tatsächliche Nutzung (1 Stunde) und die deklarierte Nutzung (3 Stunden) um zwei Stunden ausgeschaltet . Dies kann sich jedoch geändert habensystemd
; Ich habe keinen Server zum Testen zur Hand.Wenn Sie keine Probleme haben, diese Informationen vom Betriebssystem abzurufen , können Sie mit tuptime einen vollständigen Bericht über die Gesamtzeit des Linux-Systems anzeigen , einschließlich Systemabstürzen.
Zum Beispiel als Standardausgabe und -wiederaufnahme:
Alternativ ist es möglich, eine Liste mit allen historischen Ereignissen mit dem Listenargument abzurufen, in dem angegeben ist, wie das Abschaltereignis schlecht (ein Absturz) oder in Ordnung (nach dem Herunterfahren) war:
Berücksichtigen Sie dies
last reboot
und erhalten Siejournalctl --list-boots
die Informationen aus den Protokollen, und diese Protokolle haben eine maximale Lebensdauer.tuptime
Speichert die Informationen stattdessen in einer bestimmten Datenbankdatei, die ihr zugeordnet ist.Für die Installation, vorausgesetzt, Sie verwenden Linux, ist das Paket im Debian verfügbar und leitet sich ab:
Wenn nicht, können Sie das Installationsskript "tuptime-install.sh" aus dem Repository herunterladen: https://github.com/rfrail3/tuptime/
quelle