Wo ist die Funktionalität von / var / log / dmesg in xenial 16.04 geblieben?

8

/var/log/dmesgwar ein nützlicher Boot-Time- dmesgDump. Ich kann das in Ubuntu 16.04 nicht mehr finden. Ist es woanders?

( /var/log/kern.log*ist begrenzt; Kernel-Nachrichten werden erst abgefangen, nachdem der Protokollierungsdämon ausgeführt wurde. Außerdem ist es umständlich, die richtige Datei kern.log.X.gz zu finden, in der der letzte Start stattgefunden hat. (Möglicherweise wurde sie auch weggedreht.))

Robert Siemer
quelle
Gibt dmesg | head -n 100es die gewünschten Startzeitmeldungen? Wenn ja, unbuffer dmesg | head -n 100wird es in Farbe tun.
Chai T. Rex
Wenn dies /var/log/kern.log*begrenzt ist, versuchen Sie es /var/log/syslog*stattdessen.
WinEunuuchs2Unix

Antworten:

15

Um die Ausgabe vom letzten Start anzuzeigen, können Sie den Befehl weiterhin verwenden dmesg.

Ubuntu 16.04 (tatsächlich alle Ubuntus> = 15.04) verwendet systemdjedoch einen Protokollierungsdämon journaldund eine Schnittstelle mit hochflexiblem Zugriff auf protokollierte Daten : journalctl. Sie können ein Protokoll des letzten Starts sehen, das entspricht dmesg:

journalctl -k

Von der journalctlManpage :

-k, --dmesgNur Kernel-Nachrichten anzeigen. Dies impliziert -b und fügt die Übereinstimmung "_TRANSPORT = Kernel" hinzu.

Alle dmesgAusgaben in den letzten 2 Stunden

journalctl -k --since "2 hours ago"

das gesamte Journal seit dem letzten Start

journalctl -b

Liste Stiefel im Tagebuch

journalctl --list-boots

Um die persistente Protokollierung einzurichten, müssen Sie konfigurieren journald- standardmäßig wird das Protokoll nicht persistent in /run/systemd/journal(eine Binärdatei - kein Versuch, sie zu lesen) geschrieben, und vor dem aktuellen Start sind keine Daten verfügbar. Um die permanente Protokollierung einzurichten, bearbeiten Sie die Datei, /etc/systemd/journald.confkommentieren Sie die Zeile aus #Storage=autound wechseln Sie autozu persistent. Verwenden Sie Ihren bevorzugten Texteditor oder

sudo sed -i.bak 's/#Storage=auto/Storage=persistent/' /etc/systemd/journald.conf

Dann müssen Sie den Dienst neu starten (oder neu starten)

sudo systemctl restart systemd-journald

Nachdem Sie die permanente Protokollierung aktiviert haben, können Sie in Zukunft die volle Funktionalität nutzen, journalctlum beispielsweise Informationen vom Start vor der aktuellen anzuzeigen

journalctl -b -2

Weitere Tipps und Tricks zur Verwendung finden Sie auf der entsprechenden Seite des wunderbaren <3 Arch Wiki <3journalctl

Zanna
quelle
1
Wie gesagt, dmesgmöglicherweise werden keine Informationen zur Startzeit mehr angezeigt (wenn dieser bereits außerhalb des Kernel-Ringpuffers liegt). Aber journalctl -kscheint vollständig zu sein.
Robert Siemer
Beachten Sie auch, dass Zeitstempel in der journalctl -kAusgabe nicht mit Zeitversätzen in der dmesgAusgabe übereinstimmen . In meinem Fall dmesgwird beim Booten eine Verzögerung von ~ 30 Sekunden angezeigt, die journalctl -knicht zwischen denselben beiden Protokollzeilen liegt.
TaisPH