Ja, das alles hat mit Protokollierung zu tun. Nein, nichts davon hat mit Runlevel oder "Schutzring" zu tun.
Der Kernel speichert seine Protokolle in einem Ringpuffer. Der Hauptgrund dafür ist, dass die Protokolle vom Systemstart gespeichert werden, bis der Syslog-Daemon die Möglichkeit hat, sie zu starten und zu sammeln. Andernfalls werden vor dem Start des Syslog-Daemons keine Protokolle aufgezeichnet. Der Inhalt dieses Ringpuffers kann jederzeit mit dem dmesg
Befehl angezeigt werden, und sein Inhalt wird auch /var/log/dmesg
beim Start des Syslog-Daemons gespeichert .
Alle Protokolle, die nicht vom Kernel stammen, werden beim Generieren an den Syslog-Daemon gesendet, sodass sie nicht in Puffern aufbewahrt werden. Die Kernel-Protokolle werden ebenfalls vom Syslog-Daemon bei der Generierung abgerufen, sie werden jedoch weiterhin (unnötigerweise, möglicherweise) im Ringpuffer gespeichert.
Die Protokollebenen sind in der Manpage syslog (3) dokumentiert und lauten wie folgt:
- LOG_EMERG : System ist unbrauchbar
- LOG_ALERT : Es muss sofort etwas unternommen werden
- LOG_CRIT : Kritische Bedingungen
- LOG_ERR : Fehlerbedingungen
- LOG_WARNING : Warnbedingungen
- LOG_NOTICE : normaler, aber signifikanter Zustand
- LOG_INFO : Informationsmeldung
- LOG_DEBUG : Meldung auf Debug-Ebene
Jedes Level ist weniger "wichtig" als das vorherige. Eine Protokolldatei, die Protokolle auf einer Ebene aufzeichnet, zeichnet auch Protokolle auf allen wichtigeren Ebenen auf.
Der Unterschied zwischen /var/log/kern.log
und hat /var/log/mail.log
(zum Beispiel) nicht mit dem Level zu tun, sondern mit der Einrichtung oder Kategorie. Die Kategorien sind auch auf der Manpage dokumentiert.
/var/log/kern.log
und/var/log/dmesg
sollte den gleichen Inhalt wie die Kernel-Nachrichten haben? Ihr Inhalt ist jedoch nicht derselbe./var/log/kern.log
sollte dendmesg
Inhalt enthalten (möglicherweise anders formatiert) als beim Booten. Es sei denn, es ist lange her, dass das Booten und der Inhalt herausgedreht wurden.dmesg
die aktuellen Werte des Kernel-Ringpuffers ausgedruckt werden, werden die vergangenen / alten Werte des Puffers in gespeichert/var/log/dmesg
. Diedmesg
Ausgabe ist also nur eine aktuelle Teilmenge des/var/log/dmesg
Inhalts, und sie unterscheiden sich. Dann sind die Inhalte von/var/log/dmesg
(nichtdmesg
wie in Ihrem Kommentar) und/var/log/kernel.log
die gleichen?/var/log/dmesg
Inhalt voraussichtlich gegen Ende des Monats vorliegen/var/log/kern.log
. Viel später wird es nicht mehr da sein, es wird herausgedreht sein. Enthält im Allgemeinen/var/log/kern.log
Protokolle, die älter sind als ein bestimmter Snapshot des Kernel-Protokollringpuffers, sowie Protokolle, die neuer sind als der Snapshot.Um zumindest den ersten Teil Ihrer Frage zu beantworten
dmesg
:/var/log/dmesg
speichert den Inhalt des 'Kernel-Ringpuffers', eines vom Kernel beim Booten erstellten Speicherpuffers, in dem die von ihm erzeugten Protokolldaten gespeichert werden, sobald Sie die Bootloader-Phase hinter sich haben.Ein Ringpuffer ist eine spezielle Art von Puffer, der immer eine konstante Größe hat und die ältesten Nachrichten entfernt, wenn neue Nachrichten eingehen. Der im Ringpuffer des Kernels gespeicherte Text wird angezeigt, wenn Sie zum ersten Mal ein Unix-System starten -ähnliche Maschine im Konsolenmodus (kein Startbildschirm, Plymouth). Das Kernel-Protokoll wird in einem Speicherpuffer gespeichert, so dass sich die Boot-Protokolle irgendwo befinden müssen, bis das System sich selbst an dem Punkt gebootet hat, an dem der
syslog
Dämon übernehmen kann.dmesg
unter Linux ist ein Teil des wesentlichenutil-linux
Pakets von Systemwartungs-Tools, die von kernel.org veröffentlicht werden. Nach derdmesg(1)
Manpage,Siehe: http://www.computerhope.com/unix/dmesg.htm
Unter 'systemd' init kann dieser Befehl verwendet werden, um den Kernel-Ringpuffer zu drucken
# journalctl --dmesg or journalctl -k
:, thxs for correction @don_crisstiAusgeben des Befehls
dmesg | grep -i ethernet
zum Beispiel, wird die Kernel - Ringpuffer für die Zeichenfolge ‚Ethernet‘ parsen.Ich hoffe, das hilft zumindest beim ersten Teil Ihrer Anfrage.
quelle