ZB sehe ich das in /var/log/messages
:
Mar 01 23:12:34 hostname shutdown: shutting down for system halt
Gibt es eine Möglichkeit herauszufinden, was die Abschaltung verursacht hat? ZB wurde es von der Konsole aus ausgeführt, oder jemand drückte auf den Ein- / Ausschalter usw.?
/var/log/acpid
ich ein bisschen Glück mit : Es stellte sich heraus, dass der Ein- / Ausschalter gedrückt wurde. Irgendwelche anderen Ideen, wo man nachschaut, wenn acpid keine Ahnung hat?Antworten:
Nur Programme mit Root-Rechten können ein System ordnungsgemäß herunterfahren. Wenn ein System auf normale Weise heruntergefahren wird, ist es entweder ein Benutzer mit Root-Rechten oder ein ACPI-Skript. In beiden Fällen können Sie dies anhand der Protokolle herausfinden. Ein Herunterfahren des ACPI kann durch Drücken des Netzschalters, Überhitzung oder schwachen Akku (Laptop) verursacht werden. Ich habe den dritten Grund vergessen, die USV-Software bei Stromausfall, die sowieso einen Alarm sendet.
Vor kurzem hatte ich ein System, das wiederholt undankbar abschaltete. Es stellte sich heraus, dass es überhitzt und der Mobo so konfiguriert war, dass er sich nur vorzeitig ausschaltete. Das System hatte keine Möglichkeit, Protokolle zu speichern, aber glücklicherweise zeigte die Überwachung der Systemtemperatur, dass der Anstieg unmittelbar vor dem Ausschalten einsetzte.
Wenn es sich also um ein normales Herunterfahren handelt, wird es protokolliert, wenn es sich um eine Störung handelt ... Viel Glück, und wenn es sich um ein kaltes Herunterfahren handelt, besteht Ihre beste Chance zu wissen, dass Sie die Umgebung steuern und überwachen müssen.
quelle
Probieren Sie die folgenden Befehle aus:
Liste der letzten Neustarteinträge anzeigen:
last reboot | less
Liste der letzten Abschalteinträge anzeigen:
last -x | less
oder genauer:
last -x | grep shutdown | less
Sie werden jedoch nicht wissen, wer es getan hat. Wenn Sie wissen möchten, wer es getan hat, müssen Sie ein bisschen Code hinzufügen, was bedeutet, dass Sie es beim nächsten Mal wissen werden.
Ich habe diese Ressource online gefunden. Es könnte für Sie nützlich sein:
Wie finde ich heraus, wer oder was mein System gestoppt hat?
quelle
last -x shutdown
Es gibt ein paar Dinge zu überprüfen:
Überprüfen Sie die Ausgabe des letzten Befehls -x
Führen Sie diesen Befehl * aus und vergleichen Sie die Ausgabe mit den folgenden Beispielen:
Beispiele für normale Abschaltungen
Ein normales Herunterfahren und Hochfahren sieht folgendermaßen aus (beachten Sie, dass ein Herunterfahren-Ereignis und dann ein Systemstartereignis vorliegt):
In einigen Fällen wird möglicherweise Folgendes angezeigt (Beachten Sie, dass beim Herunterfahren keine Zeile angezeigt wird, das System sich jedoch auf Runlevel 0 befand. Dies ist der "Stopp-Status"):
Beispiele für unerwartete Abschaltungen
Ein unerwartetes Herunterfahren aufgrund eines Stromausfalls sieht folgendermaßen aus (beachten Sie, dass ein Systemstartereignis ohne vorheriges Systemabschlussereignis vorliegt):
Untersuchen Sie die Protokolle in / var / log
Ein Bash-Befehl zum Filtern der interessantesten Protokollmeldungen lautet wie folgt:
Wenn ein unerwartetes Ausschalten oder ein Hardwarefehler auftritt, werden die Dateisysteme nicht ordnungsgemäß ausgehängt, sodass Sie beim nächsten Start möglicherweise die folgenden Protokolle erhalten:
Wenn sich das System ausschaltet, weil der Benutzer den Ein- / Ausschalter gedrückt hat, werden Protokolle wie folgt angezeigt:
Nur wenn das System ordnungsgemäß heruntergefahren wird, erhalten Sie Protokolle wie folgt:
Wenn das System aufgrund einer Überhitzung heruntergefahren wird, werden folgende Protokolle angezeigt:
Wenn Sie über eine USV verfügen und einen Dämon zur Überwachung der Stromversorgung und zum Herunterfahren betreiben, sollten Sie dessen Protokolle überprüfen (NUT-Protokolle in / var / log / messages, apcupsd-Protokolle in / var / log / apcupsd *).
Anmerkungen
*: Hier ist die Beschreibung der
last
Manpage:Wir verwenden
head
, um die letzten 10 Ereignissetac
zu speichern, und wir verwenden , um die Reihenfolge umzukehren, damit wir nicht durch die Tatsache verwirrt werden, dass die letzten Abzüge vom letzten zum letzten Ereignis gedruckt wurden.quelle
tac
KommandoEinige mögliche Protokolldateien zum Durchsuchen: (Ich habe ein Ubuntu-System gefunden, hoffe aber, dass sie auf den meisten Linux / Unix-Systemen vorhanden sind.)
Auch diese Protokolldateien sind auf einem Ubuntu-System vorhanden, daher können die Dateinamen unterschiedlich sein. Der
tail
Befehl ist dein Freund.quelle
Vereinfachen Sie die
last
Anzeige der System-Shutdown-Einträge und führen Sie Änderungen und Filterungen aufshutdown
undreboot
:quelle
cat foo | grep bar
gegengrep bar foo
Art und Weise, scheint es , dass zuletzt die Filterung selbst in der Lage ist.Nicht ganz zufriedenstellend
Ich hatte ein ähnliches Bedürfnis auf einem Debian 7.8 und beobachte, dass im Protokoll im Grunde keine klare und explizite Meldung enthalten ist, was ein wenig überraschend ist.
Durchsuchen zeigt
/var/log
die Zeit an, zu der die Maschine heruntergefahren wurde, zeigt das ordnungsgemäße Herunterfahren der Daemons usw., jedoch nicht den ursprünglichen Grund.Die anderen genannten Lösungen (
last -x
) haben nicht viel geholfen.Guck mal wie es funktioniert
Lesen,
/etc/acpi/powerbtn-acpi-support.sh
das beinhaltet:Beachten Sie, dass als Parameter des
shutdown
Befehls ein expliziter Text angegeben wird . Ich würde erwarten, dass dieser String automatisch vom Shutdown-Programm protokolliert wird.Anpassen für bessere Protokolle
Um eine explizite Nachricht zu erhalten, habe ich den folgenden Text (als root) in eine neu erstellte
/etc/acpi/powerbtn.sh
ausführbare Datei mit eingefügtchmod a+x /etc/acpi/powerbtn.sh
Wenn Sie dies auf diese Weise tun, wird dies wahrscheinlich länger dauern als das Ändern
/etc/acpi/powerbtn-acpi-support.sh
. Die letztere Option würde wahrscheinlich ihre Wirkung beim nächsten Upgrade des Pakets verlierenacpi-support-base
.Beachten Sie, dass Ubuntu 14.04 dies anders macht (es gibt
/etc/acpi/powerbtn.sh
bereits einen anderen Inhalt als dasacpid
Paket). Auch Debian 8 macht das wahrscheinlich anders. Fühlen Sie sich frei, Varianten anzubieten.Profitieren!
Und jetzt , wenn die Power - Taste gedrückt wird, erscheint eine Zeile wie unten in
/var/log/messages
,/var/log/syslog
und/var/log/user.log
:Das ist eine explizite Meldung im Protokoll.
quelle
acpi-support-base
und dieacpid
Pakete in Betracht zu ziehen . Ich habe mich nicht getestet. Können Sie erläutern, welche Distribution und Version davon profitiert?Ich habe nur eine unbeholfene Idee, aber vielleicht funktioniert es für Sie: Geben Sie den Befehl ein
last
und überprüfen Sie die Anmeldeinformationen für alle Benutzer. filtern Sie dann die Benutzer mit der Berechtigung, die zuhalt
diesem Zeitpunkt angemeldet war. dann checke ihre.bash_history
datei aus um zu sehen ob sie halt eingegeben haben oder nicht.quelle
In meinem Fall hatte ich ein Problem mit Überhitzung und fand das Protokoll in / var / log / syslog durch ein 'grep shut *' im Ordner / var / log.
Der protokollierte Fehler war:
quelle
Ich habe auf meiner KVM-VM (wo ich mich gefragt habe, ob ein Neustart des Hosts das Herunterfahren der Gäste sauber macht) genau das eingegeben, was ich brauchte
/var/log/auth.log
(zusätzlich zumlast -x shutdown
Anzeigen derselben). Dort tauchten folgende Zeilen auf:last -x
Zeigt diese Zeilen an. Beachten Sie, dass sie in der Reihenfolge " Neueste zuerst" gedruckt werden (dh zuerst die letzte Zeile lesen und dann nach oben gehen), jedoch aufgrund des Zurücksetzens der Uhr (23:56 vor dem Start, 23:55 nach dem Start). Auch in den vorherigen Zeilen ist zu erkennen, dass die Reihenfolge etwas verwirrend ist:Um zu überprüfen, ob die Gäste sauber heruntergefahren werden, wenn der Host gestartet wird, könnte ich mich auch einfach bei einem der Gäste anmelden (ssh) und dort bleiben, wenn ich den Host hochfahre, und die folgenden Zeilen im Terminal erhalten:
quelle
Alias das Herunterfahren eines Skripts
Das Skript muss alle Parameter usw. an die ursprüngliche ausführbare Shutdown-Datei übergeben,
ABER: Das Skript muss diese protokollieren
quelle
last -x
)in meinem Fall war es die ups-Software, die den Server herunterfährt.
quelle