Der Befehl dmesg

dmesg-featured

In diesem Beitrag lernen Sie den Befehl dmesg (display message) kennen, welcher unter UNIX- / Linux-Betriebssystemen eingesetzt wird, um die Meldungen des Kernel-Ringpuffers auszulesen. Angewandt wird er insbesondere zur Fehlersuche im System, wenn etwa neue Hardware nicht korrekt erkannt wurde.

Der Befehl ist Teil des Pakets util-linux und damit in der Regel bereits vorinstalliert.

Allgemeine Syntax

Die allgemeine Syntax des Befehls dmesg lautet:

dmesg [Optionen]

Wird der Befehl ohne Angabe jeglicher Optionen ausgeführt, so gibt er standardmäßig alle Meldungen des Kernel-Ringpuffers ungefiltert aus. Aufgrund der Länge dieser Ausgabe ist es sinnvoll, den Befehl mit anderen Befehlen, wie etwa head, tail oder einem Pager wie more oder less zu kombinieren und die Menge der ausgegebenen Meldungen einzuschränken. Zudem eignet sich der Befehl grep, um die Meldungen nach bestimmten Ausdrücken zu durchsuchen.

Wichtige Optionen

Die wichtigsten Optionen des Befehls werden im Folgenden vorgestellt.

-C - Ringpuffer leeren

Soll der Kernel-Ringpuffer geleert werden, so verwenden Sie dazu die Option -C.

dmesg -C
Beispiel: Option -C

Eingabe:

dmesg -C

Bedeutung:

Nach Ausführung des Befehls ist der Kernel-Ringpuffer leer. Bei direkt erneuter Ausführung von dmesg ohne Optionen werden keine Meldungen ausgegeben.

-c - Ringpuffer nach Auslesen leeren

Ähnlich wie -C leert auch die Option -c den Ringpuffer des Kernels. Zuvor werden jedoch alle Meldungen einmal ausgegeben.

dmesg -c
Beispiel: Option -c

In diesem Beispiel wird die Option -c verwendet, um die Meldungen des Kernel-Ringpuffers auszulesen und letzteren anschließend zu leeren.
Eingabe:

Für dieses Beispiel wurde zusätzlich der Befehl head mit einer Pipe angehängt, um nur die ersten 10 Zeilen der Ausgabe von dmesg anzuzeigen. Die weiteren Beispiele dieses Beitrags verwenden den Befehl auf dieselbe Weise.

dmesg -c | head

Ausgabe:

Der Ausgabe sind nun die ersten 10 Zeilen von dmesg's Ausgabe zu entnehmen. Der Kernel-Ringpuffer ist jetzt zudem leer, sodass bei erneuter Eingabe von dmesg zunächst keine Meldungen ausgegeben werden.

befehl-dmesg-beispiel-1

-e - Lokale Zeit und Zeitversatz anzeigen

Wird die Option -e angegeben, so gibt dmesg einmalig die lokale Zeit und anschließend jeweils den Zeitversatz der Meldungen in menschenlesbarem Format aus. Es ist jedoch zu beachten, dass die Zeitstempel ungenau sein könnten, da die für die Protokollierung verwendete Zeit nach SUSPEND- und RESUME-Vorgängen nicht noch einmal abgeglichen wird.

dmesg -e
Beispiel: Option -e

Dieses Beispiel zeigt die Option -e zur Ausgabe der lokalen Zeit sowie des Zeitversatzes.
Eingabe:

dmesg -e | head

Ausgabe:

In der ersten Zeile der Ausgabe von dmesg ist die lokale Zeit in menschenlesbarem Format zu sehen (1). In den darauffolgenden Zeilen wird der Zeitstempel jeweils als Zeitversatz von diesem ersten Eintrag, in Sekunden, angezeigt (2).

befehl-dmesg-beispiel-2

-f - Ausgabe auf Leistungen beschränken

Mithilfe der Option -f lässt sich die Ausgabe auf Meldungen einer bestimmten Liste von Leistungen beschränken. So wäre es beispielsweise möglich, durch Angabe von "daemon" ausschließlich Meldungen von Daemons (Systemdiensten) zu erhalten. Mehrere Leistungen werden in der Auflistung durch Kommata "," getrennt.

dmesg -f [Leistungen]

Die unterstützten Leistungen können Sie unter den "Supported log facilities" der Ausgabe des folgenden Befehls nachlesen:

dmesg --help
Beispiel: Option -f

Mit der Option -f wird in diesem Beispiel die Ausgabe auf die Leistungen "daemon" und "kern" (kernel) beschränkt.
Eingabe:

Beide Leistungen werden kommasepariert an die Option übergeben.

dmesg -f daemon,kern | head

Ausgabe:

Der Ausgabe sind nun nur Meldungen, die den angegebenen Leistungen angehören, zu entnehmen.

befehl-dmesg-beispiel-3

-H - Menschenlesbare Ausgabe

Aktiviert die menschenlesbare Ausgabe. Implizit erfolgt dabei die Ausgabe der lokalen Zeit und des Zeitversatzes in menschenlesbarem Format, wie bei der Option -e. Zugleich wird ein Pager aktiviert, welcher das Scrollen durch die Meldungen mit den Pfeiltasten ermöglicht.

dmesg -H

-l - Ausgabe auf Ebenen beschränken

Die Ausgabe von dmesg lässt sich mithilfe der Option -l auf Meldungen einer Liste von (Log-)Ebenen beschränken - beispielsweise um nur Fehlermeldungen und Warnungen auszugeben. Ähnlich wie auch bei der Option -f wird die Liste kommagetrennt formatiert.

dmesg -l [Ebenen]

Der Ausgabe des folgenden Befehls sind unter der Zeile "Supported log levels (priorities)" die unterstützten Ebenen zu entnehmen:

dmesg --help
Beispiel: Option -l

Hier wird die Ausgabe mit der Option -l auf die Log-Ebene "err" (error) beschränkt.
Eingabe:

Die gewünschte Ebene "err" wird der Option -l übergeben.

dmesg -l err | head

Ausgabe:

In der Ausgabe befinden sich nun nur 4 Meldungen, die zur Log-Ebene "err" gehören.

befehl-dmesg-beispiel-4

-T - Menschenlesbare Zeitstempel

Durch Verwendung der Option -T lassen sich durchgehend menschenlesbare Zeitstempel für alle Meldungen anzeigen. Ähnlich wie auch bei der Option -e ist eine eventuelle Ungenauigkeit der Zeitangaben zu berücksichtigen.

dmesg -T
Beispiel: Option -T

In diesem Beispiel wird die Option -T verwendet, um durchgehend menschenlesbare Zeitstempel mit den Meldungen auszugeben.
Eingabe:

dmesg -T | head

Ausgabe:

In der Ausgabe sind die Zeitstempel nun alle menschenlesbar formatiert. (siehe rote Markierung)

befehl-dmesg-beispiel-5

-t - Keine Zeitstempel ausgeben

Die Option -t deaktiviert die Ausgabe von Zeitstempeln des Kernels.

dmesg -t
Beispiel: Option -t

Dieses Beispiel zeigt die Deaktivierung der Zeitstempel mit der Option -t.
Eingabe:

dmesg -t | head

Ausgabe:

Es werden keine Zeitstempel mehr ausgegeben, sondern lediglich noch die Meldungen selbst.

befehl-dmesg-beispiel-6

-u - Anwendungsmeldungen ausgeben

Mit der Option -u können Meldungen der Anwendungsschicht ausgegeben werden.

dmesg -u
Beispiel: Option -u

Die Ausgabe von Meldungen aus der Anwendungsschicht mit der Option -u wird in diesem Beispiel gezeigt.
Eingabe:

dmesg -u | head

Ausgabe:

Ausgegeben werden hier nur Meldungen, die zur Anwendungsschicht gehören.

befehl-dmesg-beispiel-7

Abonniere JETZT unseren Newsletter!


Verpasse nie wieder neue Beiträge und exklusive Insider-Only-Inhalte!

Joel Benseler

Click Here to Leave a Comment Below

Leave a Comment: