Android

Befehl Dmesg unter Linux

Linux Kommandozeile für Anfänger - Teil 4 - Logs, man & Aliase

Linux Kommandozeile für Anfänger - Teil 4 - Logs, man & Aliase

Inhaltsverzeichnis:

Anonim

Der Linux-Kernel ist der Kern des Betriebssystems, der den Zugriff auf Systemressourcen wie CPU, E / A-Geräte, physischen Speicher und Dateisysteme steuert. Der Kernel schreibt während des Startvorgangs und bei laufendem System verschiedene Meldungen in den Kernel-Ringpuffer. Diese Meldungen enthalten verschiedene Informationen zum Betrieb des Systems.

Der Kernel-Ringpuffer ist ein Teil des physischen Speichers, der die Protokollnachrichten des Kernels enthält. Die Größe ist fest, dh sobald der Puffer voll ist, werden die älteren Protokollsätze überschrieben.

Das dmesg wird zum Drucken und Steuern des Kernel-Ringpuffers unter Linux und anderen Unix-ähnlichen Betriebssystemen verwendet. Es ist nützlich, um Kernel-Boot-Meldungen zu untersuchen und Hardware-Probleme zu beheben.

In diesem Tutorial werden die Grundlagen des Befehls dmesg .

Verwenden des dmesg

Die Syntax für den Befehl dmesg lautet wie folgt:

dmesg

Beim dmesg ohne Optionen schreibt dmesg alle Nachrichten aus dem Kernel-Ringpuffer in die Standardausgabe:

dmesg

Standardmäßig können alle Benutzer den Befehl dmesg . Auf einigen Systemen ist der Zugriff auf dmesg möglicherweise für Benutzer ohne dmesg eingeschränkt. In dieser Situation wird beim Aufrufen von dmesg die folgende Fehlermeldung dmesg :

dmesg: read kernel buffer failed: Operation not permitted

Der kernel.dmesg_restrict gibt an, ob nichtprivilegierte Benutzer dmesg verwenden dmesg , um Nachrichten aus dem Protokollpuffer des Kernels dmesg . Um die Einschränkungen zu entfernen, setzen Sie ihn auf Null:

sudo sysctl -w kernel.dmesg_restrict=0

Normalerweise enthält die Ausgabe viele Informationszeilen, sodass nur der letzte Teil der Ausgabe angezeigt werden kann. Um jeweils eine Seite anzuzeigen, leiten Sie die Ausgabe an ein Pager-Dienstprogramm weiter, z. B. less oder more :

dmesg --color=always | less

Mit --color=always wird die --color=always beibehalten.

dmesg | grep -i usb

dmesg liest die vom Kernel generierten Nachrichten aus der virtuellen Datei /proc/kmsg . Diese Datei bietet eine Schnittstelle zum Kernel-Ringpuffer und kann nur von einem Prozess geöffnet werden. Wenn der syslog Prozess auf Ihrem System ausgeführt wird und Sie versuchen, die Datei mit cat oder less zu lesen, bleibt der Befehl hängen.

Der syslog Dämon speichert Kernel-Nachrichten in /var/log/dmesg , sodass Sie auch diese Protokolldatei verwenden können:

cat /var/log/dmesg

Formatieren der dmesg Ausgabe

Der Befehl dmesg bietet eine Reihe von Optionen, mit denen Sie die Ausgabe formatieren und filtern können.

Eine der am häufigsten verwendeten Optionen von dmesg ist -H ( --human ), wodurch die vom Menschen lesbare Ausgabe ermöglicht wird. Diese Option leitet die Befehlsausgabe an einen Pager weiter:

dmesg -H

Verwenden Sie zum Drucken von lesbaren Zeitstempeln die Option -T ( --ctime ):

dmesg -T

IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready

Das Zeitstempelformat kann auch mit dem --time-format Option, die ctime, reltime, delta, notime oder iso sein kann. Um beispielsweise das Delta-Format zu verwenden, geben Sie Folgendes ein:

dmesg --time-format=delta

Sie können auch zwei oder mehr Optionen kombinieren:

dmesg -H -T

Verwenden Sie die Option -w ( --follow ), um die Ausgabe des Befehls dmesg in Echtzeit zu --follow :

dmesg --follow

Filterung der dmesg Ausgabe

Sie können die dmesg Ausgabe auf bestimmte Funktionen und Ebenen beschränken.

Die Einrichtung stellt den Prozess dar, der die Nachricht erstellt hat. dmesg unterstützt die folgenden Protokollfunktionen:

  • kern - Kernel-Nachrichten user - Nachrichten auf user mail - Mail-System- daemon - System-Daemons auth - Sicherheits- / Autorisierungsnachrichten syslog - Interne Syslogd-Nachrichten lpr - Zeilendrucker-Subsystem- news - Netzwerk-News-Subsystem

Die -f ( --facility ) Mit dieser Option können Sie die Ausgabe auf bestimmte Funktionen beschränken. Die Option akzeptiert eine oder mehrere durch Kommas getrennte Einrichtungen.

Um beispielsweise nur die Kernel- und System-Daemon-Meldungen anzuzeigen, würden Sie Folgendes verwenden:

dmesg -f kern, daemon

Jede Protokollnachricht ist mit einer Protokollebene verknüpft, die die Wichtigkeit der Nachricht anzeigt. dmesg unterstützt die folgenden Protokollebenen:

  • emerg - System ist unbrauchbar. alert - Sofortige crit critical conditions err - Fehlerzustände warn - notice Warnungszustände - Normale, aber wichtige Zustandsinformationen - Informationsdebuggen - Meldungen auf Debug-Ebene

Das -l ( --level ) beschränkt die Ausgabe auf definierte Ebenen. Die Option akzeptiert eine oder mehrere durch Kommas getrennte Ebenen.

Der folgende Befehl zeigt nur die Fehler- und kritischen Meldungen an:

dmesg -l err, crit

Löschen des Ringpuffers

Mit der Option -C ( --clear ) können Sie den Ringpuffer löschen:

sudo dmesg -C

Nur Root-Benutzer oder Benutzer mit sudo-Berechtigungen können den Puffer löschen.

Verwenden Sie die Option -c ( --read-clear ), um den --read-clear vor dem Löschen zu drucken:

sudo dmesg -c

dmesg > dmesg_messages

Fazit

Mit dmesg Befehl dmesg können Sie den Kernel-Ringpuffer anzeigen und steuern. Dies kann bei der Fehlerbehebung bei Kernel- oder Hardwareproblemen sehr hilfreich sein.

man dmesg Sie man dmesg in Ihr Terminal ein, um Informationen zu allen verfügbaren dmesg Optionen zu erhalten.

dmesg kernel terminal