Wie Verwenden Sie den Befehl dmesg auf Linux

0
1101
Fatmawati Achmad Zaenuri/Shutterstock

Der Befehl dmesg können Sie einen Blick in die verborgene Welt der Linux-Start-Prozesse. Überprüfen und überwachen Sie hardware-und Treiber-Meldungen aus dem kernel-eigenen Ringspeicher mit “the fault finder Freund.”

Wie Linux-Ring Puffer Arbeitet

In Linux-und Unix-like Computer, Booten und Systemstart sind zwei unterschiedliche Phasen in der Abfolge der Ereignisse, die stattfinden, wenn der computer eingeschaltet ist.

Der boot-Vorgang (BIOS oder UEFI, MBR und GRUB) nehmen Sie die Initialisierung des Systems bis zu dem Punkt, wo der kernel in den Speicher geladen und mit der initial-ramdisk (initrd oder initramfs), und systemd gestartet wird.

Die Autostart-Prozesse, dann wählen Sie die Leitung und führen die abschließende Initialisierung des Betriebssystems. In den sehr frühen Phasen der Initialisierung, Protokollierung Dämonen wie syslogd oder rsyslogd sind noch nicht in Betrieb. Um zu vermeiden, dass nennenswerte Fehlermeldungen und Warnungen aus dieser phase der Initialisierung, der kernel enthält einen ring-buffer, der es verwendet, als eine Nachricht speichern.

Ein ring-Puffer ist ein Speicherbereich reserviert für Nachrichten. Es ist einfach im design, und eine Feste Größe. Wenn es voll ist, neueren Nachrichten überschrieben, die ältesten Nachrichten. Konzeptionell kann es gedacht werden als “circular buffer.”

Der kernel-Ringpuffer speichert Informationen wie den Initialisierungs-Nachrichten, Treiber, Nachrichten aus hardware und Meldungen von kernel-Modulen. Denn es enthält diese low-level-Start-Nachrichten, die ring-Puffer ist ein guter Ort, um zu starten eine Untersuchung zu hardware-Fehlern oder anderen Startproblemen.

Aber gehen Sie nicht leer aus. Nehmen dmesg mit Ihnen.

Der Befehl dmesg

Die dmesg-Befehl ermöglicht Ihnen das überprüfen der Nachrichten, werden im Ringpuffer gespeichert. Standardmäßig müssen Sie sudo verwenden, dmesg.

sudo dmesg

Alle Nachrichten, die in den ring-Puffer angezeigt werden, in das terminal-Fenster.

Das war eine Sintflut. Offensichtlich, was wir tun müssen, ist das Rohr, durch weniger:

sudo dmesg | less

Jetzt können wir einen Bildlauf durch die Nachrichten, die auf der Suche für Elemente, die von Interesse sind.

Sie können verwenden Sie die Suche-Funktion innerhalb weniger suchen und markieren Sie die Elemente und Begriffe, die Sie interessiert sind in. Starten Sie die Suche-Funktion durch drücken der Schrägstrich-Taste “/” in weniger.

VERWANDTE: Wie die weniger-Befehl unter Linux

Entfernen der Notwendigkeit für sudo

Wenn Sie möchten, um zu vermeiden, verwenden Sie sudo jedes mal, wenn Sie verwenden Sie dmesg, können Sie diesen Befehl verwenden. Aber beachten Sie: es kann jeder mit einem Benutzerkonto an deinem computer, benutze einfach dmesg, ohne sudo.

sudo sysctl -w kernel.dmesg_restrict=0

Zwingen Farbe Ausgabe

Standardmäßig dmesg wird wahrscheinlich so konfiguriert werden, produzieren farbige Ausgabe. Falls nicht, können Sie sagen, dmesg, Kolorieren, dessen Ausgang mit dem-L – (Farbe) option.

sudo dmesg -L

Um zu erzwingen, dmesg, um immer standardmäßig ein farbiger Anzeige verwenden Sie diesen Befehl:

sudo dmesg –color=always

Menschliche Zeitstempel

Standardmäßig dmesg verwenden Sie eine timestamp-notation in Sekunden und Nanosekunden, die seit dem starten des Kernels. Diese erbrachten in einer mehr menschlich-freundlichen format verwenden Sie die Option-H (human -) option.

sudo dmesg -H

Dies bewirkt, dass zwei Dinge passieren.

  • Die Ausgabe wird automatisch angezeigt, in weniger.
  • Der Zeitstempel zeigt Zeitstempel mit Datum und Uhrzeit, mit einer minute Auflösung. Die Meldungen, die aufgetreten sind, in jeder minute, die gekennzeichnet sind mit die Sekunden und Nanosekunden aus dem Beginn dieser minute.

Lesbaren Zeitstempel

Wenn Sie ihn nicht benötigen Nanosekunden-Genauigkeit, aber Sie wollen timestamps sind einfacher zu Lesen als die Standardeinstellungen, verwenden Sie die-T (human readable) option. (Es ist ein wenig verwirrend. -H ist die “human” – option-T wird der “human-readable” – option.)

sudo dmesg -T

Die Zeitstempel werden beim Rendern als standard-Daten und Zeiten, aber die Auflösung verringert wird, um eine minute.

Was alles geschah innerhalb von einer einzigen minute hat die gleichen Zeitstempel. Wenn Sie gestört sind, ist die Abfolge der Ereignisse, das ist gut genug. Beachten Sie auch, dass Sie gedumpten wieder in der Eingabeaufforderung. Diese option wirkt sich nicht automatisch berufen, weniger.

Das Ansehen Von Live-Veranstaltungen

Zum anzeigen von Nachrichten, wie Sie ankommen in den kernel-ring-Puffer, verwenden Sie den –Folgen (warten auf Nachrichten) – option. Dieser Satz mag ein wenig seltsam. Wenn der ring-Puffer wird zum speichern von Nachrichten von Ereignissen, die stattfinden, während der Start-Sequenz, wie Sie können live-Nachrichten in der ring-Puffer sobald der computer hochgefahren ist und läuft?

Alles, was bewirkt eine änderung in der hardware mit Ihrem computer verbunden ist, wird dazu führen, dass Nachrichten gesendet werden, um den kernel-Ringpuffer. Aktualisieren oder fügen Sie ein kernel-Modul, und du wirst sehen, Ringspeicher, Nachrichten über diese änderungen. Wenn Sie plug-in einem USB-Laufwerk oder eine Verbindung herstellen oder trennen der Verbindung zu einem Bluetooth-Gerät, werden Sie sehen, Meldungen in der dmesg-Ausgabe. Auch virtuelle hardware wird führen, dass die neuen Nachrichten angezeigt werden im ring-Puffer. Zünden Sie sich eine virtuelle Maschine, und Sie werden sehen, neue Informationen kommen in der ring-Puffer.

sudo dmesg –follow

Beachten Sie, dass Sie nicht wieder zu der Eingabeaufforderung. Wenn neue Nachrichten angezeigt werden, die Sie angezeigt werden, von dmesg an der Unterseite des terminal-Fenster.

Auch die Montage eines CD-ROM-Datenträger gesehen wird, als eine Veränderung, denn Sie haben veredelt die Inhalte der CD-ROM auf den directory-Baum.

Nach Ausfahrt aus der real-Zeit zu füttern, drücken Sie Strg+C.

Abrufen der Letzten Zehn Nachrichten

Verwenden Sie den tail-Befehl zum abrufen der letzten zehn kernel-ring-buffer-Nachrichten. Natürlich, Sie können rufen Sie eine beliebige Anzahl von Nachrichten. Zehn ist nur unser Beispiel.

sudo dmesg | Letzte -10

Die letzten zehn Nachrichten werden abgerufen und in das terminal-Fenster.

Auf Der Suche Nach Bestimmten Begriffen

Leiten Sie die Ausgabe von dmesg über grep zur Suche nach bestimmten Zeichenfolgen oder-mustern. Hier sind wir mit den -i (ignore case) – option, so dass der Fall der übereinstimmenden Zeichenfolgen ignoriert. unsere Ergebnisse gehören “usb” und “USB” und jegliche andere Kombination von Kleinbuchstaben und Großbuchstaben.

sudo dmesg | grep -i usb

Die markierten Suchergebnisse sind in groß-und Kleinbuchstaben.

Wir können isolieren Sie die Nachrichten, die Verweise auf die erste SCSI-Festplatte auf dem system sda. (Tatsächlich, sda ist auch heutzutage für die erste SATA-Festplatte, und USB-Laufwerke.)

sudo dmesg | grep-i sda

Alle Nachrichten, erwähnen sda abgerufen werden und in das terminal-Fenster.

Um grep-Suche nach mehreren Begriffen auf einmal, verwenden Sie den-E (erweitern Sie den regulären Ausdruck) option. Sie müssen die Suchbegriffe innerhalb einer in Anführungszeichen eingeschlossenen Zeichenkette mit der pipe ” | ” – Trennzeichen zwischen den Suchbegriffen:

sudo dmesg | grep -E “Speicher|tty|dma”

Jede Nachricht, die erwähnt, einen der Suchbegriffe aufgeführt ist, in das terminal-Fenster.

Mit Log-Level

Jede Meldung, die protokolliert der kernel-Ringpuffer hat eine Ebene mit ihm verbunden. Die Ebene steht die Bedeutung der information in der Nachricht. Die Ebenen sind:

  • emerg: System ist unbrauchbar.
  • Alarm: Aktionen müßen sofort durchgefüht werden.
  • crit: Kritische Bedingungen.
  • err: Fehler-Bedingungen.
  • warnen: Warnung Bedingungen.
  • Hinweis: Normaler, aber signifikanter Zustand.
  • info: Information.
  • debug: Debug-level-Nachrichten.

Wir können dmesg-Auszug-Nachrichten, die eine bestimmte Ebene mit Hilfe der-l (level) option und dabei den Namen der Ebene als Kommandozeilen-parameter. Sie sehen nur “informativen” Ebene-Nachrichten verwenden diesen Befehl:

sudo dmesg -l info

Alle Nachrichten, die aufgeführt sind, sind informative Meldungen. Enthalten Sie keine Fehler oder Warnungen angezeigt, nur nützliche Benachrichtigungen.

Kombinieren Sie zwei oder mehrere log-Stufen in einem Befehl zum abrufen von Nachrichten an mehrere log-Stufen:

sudo dmesg -l debug,bemerken

Die Ausgabe von dmesg ist eine Mischung von Nachrichten der einzelnen log-level:

Die Anlage-Kategorien

Die dmesg-Meldungen werden in Kategorien zusammengefasst genannte “Einrichtungen.” Die Liste der Einrichtungen ist:

  • kern: Kernel-Meldungen.
  • user: User-level-Nachrichten.
  • E-mail: E-Mail-system.
  • daemon: System-daemons.
  • auth: Security – /authorization-Meldungen.
  • syslog: Internen syslogd Nachrichten.
  • lpr: Line printer subsystem.
  • news: Network news subsystem.

Wir können Fragen, einfach dmesg, um das filter seinen Ausgang nur die Nachrichten in einer bestimmten Einrichtung. Dies zu tun, müssen wir-f (- Anlage) option:

sudo dmesg -f daemon

dmesg listet alle Nachrichten im Zusammenhang mit Dämonen in das terminal-Fenster.

Als wir damals mit den Ebenen, die wir Fragen können, dmesg, um die Liste von Nachrichten von mehr als einer Einrichtung auf einmal:

sudo dmesg -f syslog, daemon

Die Ausgabe ist eine Mischung von syslog und daemon-log-Meldungen.

Die Kombination von Facility und Level

Die-x – (decode) – option macht dmesg zeigen die Anlage und das Niveau, das für Menschen lesbar Präfixe, um jede Zeile.

sudo dmesg -x

Die Anlage und Ebene gesehen werden kann, an den Anfang jeder Zeile:

Der erste markierte Abschnitt ist eine Meldung aus der “kernel” – Einrichtung mit einer Ebene der “Notiz”. Das zweite hervorgehobene Abschnitt ist eine Meldung aus der “kernel” – Einrichtung mit einer Ebene von “info.”

Das ist Großartig, Aber Warum?

In einer nussschale, Fehler zu finden.

Wenn Sie Probleme mit einer Hardwarekomponente nicht erkannt wird oder nicht richtig funktioniert, dmesg wirft vielleicht etwas Licht auf das Problem.

  • Benutze einfach dmesg, um zu überprüfen, Nachrichten von der höchsten Ebene nach unten durch jede untere Ebene, auf der Suche nach Fehler oder Warnungen, die Erwähnung der hardware-Element, oder möglicherweise einen Einfluss auf das Problem.
  • Benutze einfach dmesg, um die Suche für jede Erwähnung der angemessenen Einrichtung, um zu sehen, ob Sie enthalten keine nützlichen Informationen.
  • Rohr durch dmesg grep und suchen nach verwandten strings oder Symbole, die wie Produkt, Hersteller oder Modellnummer.
  • Rohr durch dmesg grep und suchen für generische Begriffe wie “gpu” oder “Speicher”, oder Begriffe wie “failure”, “failed” oder “unfähig”.
  • Verwenden Sie die option –follow und beobachten dmesg-Meldungen in Echtzeit.

Happy hunting.

LESEN SIE WEITER

  • › Was IIRC Bedeutet, und Wie Verwenden Sie Es?
  • › Was Ist Markdown und Wie Verwenden Sie Es?
  • › Kann Mein iPhone oder iPad mit einem Virus infiziert wird?
  • › Wie Nutzen Sie Ihr iPad als eine Sekundäre Mac-Display Ohne Beiwagen
  • “Was Ist ein Wangiri oder “den Einen Ring” Telefon-Betrug?