Finden Sie heraus, wann ein System ausfällt?

0

Ich habe einen Mac OS X 10.5-Server mit einem RAID-Set, der am Donnerstag aufgrund eines Stromausfalls ausgefallen ist, und der Computer bootet derzeit nicht zufrieden *.

Ist es möglich, herauszufinden, wann die Maschine ausgefallen ist, ohne vom internen Laufwerk gebootet zu werden? (Ich bin von einem externen Laufwerk gebootet und warte auf die Initialisierung der RAID-Sets.)

Normalerweise würde ich rennen last. Die Manpage gibt nicht an, dass ich es auf einem anderen Startvolume ausführen kann. Es scheint möglich zu sein, / var / log / utmpx zu analysieren, aber ich denke nicht, dass es sich lohnen würde, dies für dieses einmalige Problem von Grund auf zu versuchen.


Update: Beim erneuten Lesen der Manpage sehe ich, dass die Übersicht Folgendes zeigt:

last [-n] [-f file] [-h host] [-t tty] [user ...]

Nirgendwo sonst wird der -f fileParameter erwähnt. Wenn ich es versuche, last -f /var/run/utmpxerhalte ich ein paar Informationen und dann einen Segmentierungsfehler.

Ich habe 'man last' gegoogelt und eine Manpage für OS X 10.6 erstellt, die nicht einmal -f flagim Inhaltsverzeichnis angezeigt wird . Ich gehe davon aus, dass das Flag -f einen bekannten Fehler enthält.


*** Ich versuche immer noch herauszufinden, warum es nicht glücklich ist, und stelle möglicherweise eine Folgefrage. Im Moment kann ich sehen, dass UserNotificationCenter am frühen Donnerstagmorgen wiederholt abgestürzt ist und dass securityd, mdworker und ARDAgent kurz nach dem Start abstürzen [Ich denke, ich möchte überprüfen, wann die Box auf und ab ging]. Das Anmeldefenster wird nicht richtig angezeigt (ich denke, es stürzt ab oder kann nicht mit einem toten Securityd umgehen). Die Box sollte so eingestellt sein, dass sie ausfällt, wenn die USV einen Stromausfall meldet. im moment frage ich mich, ob es runtergegangen ist und mehrmals wieder eingeschaltet wurde! Ich hoffe sicher nicht.

Clinton Blackmore
quelle

Antworten:

2

Dies ist nur eine Vermutung, da ich ein Linux-Typ bin, aber normalerweise erhalte ich -- MARK --alle 20 Minuten ein in / var / log / messages, dass der Computer eingeschaltet ist. Nur nach einer Lücke in den Systemprotokolldateien suchen?

rescdsk
quelle
Danke für die Idee. Mir scheint, dass /var/log/system.log unter OS X analog zu /var / log / messages ist. Ich habe versucht, nach Lücken bei der Ausgabe von Nachrichten cat /Volumes/ServerHD/var/log/system.log | cut -b 1-12 | uniq -czu suchen ( ), aber es scheint hilfreicher zu sein, nach solchen zu suchen, fsck_hfsdie nach dem Start früh im Protokoll erscheinen. Ich bekomme keine -- MARK --Nachrichten.
Clinton Blackmore
Ich denke jetzt, dass das Durchsuchen von system.log nach "Darwin" eine noch bessere Wahl ist. In einer Zeile wird die Kernelversion angegeben, die immer kurz nach dem Start in den Protokollen angezeigt wird.
Clinton Blackmore
0

Ich möchte dies nicht als Antwort akzeptieren, da es um die ursprüngliche Frage herumgeht, aber:

  • Nachdem das RAID die Initialisierung abgeschlossen hatte, startete ich den Server im Einzelbenutzermodus, lief lastund schrieb die Ergebnisse auf.

  • Ich habe es mit /var/log/system.log verglichen und es scheint, dass es bei jedem Start eine Zeile mit fsck ausgibt - entweder, dass Journalling aktiviert ist und keine Prüfung erforderlich ist, oder, dass a Überprüfung wurde erzwungen. (Ich sehe keine besondere Korrelation mit dem Zeitpunkt, zu dem der Computer heruntergefahren wird.)

  • Als ich /var/log/secure.log untersuchte, bemerkte ich, dass es Probleme beim Lesen von / etc / authorized gab. Ich habe mir die Datei angeschaut (die eine XML-Datei sein sollte) und sie wurde verschlungen. Ich bin gelaufen plutil /etc/authorization, nur für den Fall, dass es eine binäre Liste war, und es hat sich darüber beschwert. Also habe ich / etc / authority von einem anderen Server kopiert und nach dem Neustart ist mein Server in Betrieb und scheint zufrieden zu sein.


Update : Ich habe gerade einige Informationen aus meinen Protokollen hinzugefügt, um anderen mit diesem Problem bei der Suche nach einer Lösung zu helfen.

In /var/log/system.logsah ich Dinge wie:

Apr 29 06:11:41 servername /System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow[59]: ERROR | main | session setup failed (status = 226), launched by init = 1
Apr 29 06:11:41 servername /System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow[59]: ERROR | main | loginwindow argument passed = console
Apr 29 06:11:41 servername /System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow[59]: SessionGetInfo(0xffffffff) -> Mach 1102
...
Apr 29 06:11:42 servername loginwindow[59]: GetOurLSSessionIDInit(), returned error 0xe2, securitySessionID=0x0 attrs=0 uid=0 euid=0.  cf Radar 5123589.
Apr 29 06:11:42 servername /System/Library/CoreServices/coreservicesd[93]: Client must provide a valid sessionID but passed 0, 0x0/0x0 version=10500000 uid=0 euid=0. cf Radar 5123589.
Apr 29 06:11:42 servername loginwindow[59]: LaunchServices/5123589: coreservicesd is running an unsupported version, 0 ( we are 10500000 ), so we cannot talk to it.
...
Apr 29 06:11:47 servername ReportCrash[88]: Formulating crash report for process loginwindow[59]
Apr 29 06:11:48 servername com.apple.launchd[1] (com.apple.UserEventAgent-LoginWindow[195]): Exited: Terminated
Apr 29 06:11:48 servername com.apple.launchd[1] (com.apple.loginwindow[59]): Exited abnormally: Abort trap
Apr 29 06:11:48 servername /System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow[220]: Login Window Application Started -- Threaded auth
Apr 29 06:11:48 servername ReportCrash[88]: Saved crashreport to /Library/Logs/CrashReporter/loginwindow_2010-04-29-061142_servername.crash using uid: 0 gid: 0, euid: 0 egid: 0

Und in /var/log/secure.log:

Apr 29 06:15:46 servername loginwindow[772]: SessionGetInfo(0xffffffff) -> Mach 1102
Apr 29 06:15:46 servername loginwindow[772]: GetOurLSSessionIDInit(), returned error 0xe2, securitySessionID=0x0 attrs=0 uid=0 euid=0.  cf Radar 5123589.
Apr 29 06:15:46 servername loginwindow[772]: LaunchServices/5123589: coreservicesd is running an unsupported version, 0 ( we are 10500000 ), so we cannot talk to it.
Apr 29 06:15:56: --- last message repeated 4 times ---
...
Apr 29 06:37:23 servername loginwindow[554]: SessionGetInfo(0xffffffff) -> Mach 1102
Apr 29 06:37:23 servername loginwindow[554]: GetOurLSSessionIDInit(), returned error 0xe2, securitySessionID=0x0 attrs=0 uid=0 euid=0.  cf Radar 5123589.
Apr 29 06:37:23 servername loginwindow[554]: LaunchServices/5123589: coreservicesd is running an unsupported version, 0 ( we are 10500000 ), so we cannot talk to it.
Apr 30 08:04:28 localhost com.apple.SecurityServer[36]: Entering service
Apr 30 08:04:33 servername com.apple.SecurityServer[36]: Parsing rules file "/etc/authorization": XML parser error:\n   Unexpected character  at line 1\nOld-style plist parser error:\n    Unexpected character '0x0' at line 1
Apr 30 08:04:33 servername com.apple.SecurityServer[36]: Parsing rules file "/etc/authorization": XML parser error:\n   Unexpected character  at line 1\nOld-style plist parser error:\n    Unexpected character '0x0' at line 1
Apr 30 08:05:20 servername loginwindow[60]: SessionGetInfo(0xffffffff) -> Mach 1102
Apr 30 08:05:20 servername loginwindow[60]: GetOurLSSessionIDInit(), returned error 0xe2, securitySessionID=0x0 attrs=0 uid=0 euid=0.  cf Radar 5123589.
Apr 30 08:05:20 servername loginwindow[60]: LaunchServices/5123589: coreservicesd is running an unsupported version, 0 ( we are 10500000 ), so we cannot talk to it.

Die wichtigsten Dinge in den Protokollen sind, dass nichts mit coreservicesd kommunizieren konnte (und das Anmeldefenster deswegen abstürzte) und dass SecurityServer / etc / authority nicht analysieren konnte. Ich sollte beachten, dass der Server 10.5 (wahrscheinlich 10.5.8) ausführt.

Clinton Blackmore
quelle