GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak používat příkaz dmesg Linux

Úvod

dmesg command je linuxový nástroj, který zobrazuje zprávy související s jádrem načtené z kruhové vyrovnávací paměti jádra. Kruhová vyrovnávací paměť ukládá informace o hardwaru, inicializaci ovladače zařízení a zprávy z modulů jádra, které se odehrávají během spouštění systému.

dmesg příkaz je neocenitelný při odstraňování chyb souvisejících s hardwarem, varování a pro diagnostiku selhání zařízení.

V tomto tutoriálu se naučíte používat dmesg příkaz v Linuxu.

Předpoklady

  • Počítačový systém se systémem Linux.
  • Uživatelský účet s oprávněními správce.

Syntaxe a možnosti

Základní dmesg syntaxe příkazu je:

dmesg [options]

Níže uvedená tabulka uvádí nejčastěji používané dmesg možnosti:

Možnost Popis
-C, --clear Vymaže vyrovnávací paměť vyzvánění.
-c, --read-clear Vytiskne obsah vyrovnávací paměti kruhu a poté jej vymaže.
-f, --facility [list] Omezuje výstup na zadané zařízení oddělené čárkami [list] .
-H, --human Umožňuje lidem čitelný výstup.
-L, --color[=auto|never|always] Přidá barvu k výstupu. Vynechání [auto|never|always] arguments výchozí hodnota auto.
-l, --level [list] Omezí výstup na zadaný seznam úrovní oddělených čárkami.
--noescape Zakáže funkci automatického escapování netisknutelných a potenciálně nebezpečných znaků.
-S, --syslog Pokyny dmesg používat rozhraní syslog jádra ke čtení zpráv jádra. Výchozí nastavení je /dev/kmsg místo syslog .
-s, --buffer-size [size] Použije zadanou velikost vyrovnávací paměti k dotazu na kruhovou vyrovnávací paměť jádra. Výchozí hodnota je 16392.
-T, --ctime Vytiskne časová razítka čitelná pro člověka.
-t, --notime Pokyny dmesg netisknout časová razítka jádra.
--time-format [format] Vytiskne časová razítka pomocí zadaného [format] . Přijímané formáty jsou ctime , reltime , delta a iso (dmesg implementace formátu ISO-8601).
-w, --follow Zachovává dmesg běží a čeká na nové zprávy. Tato funkce je dostupná pouze na systémech s čitelným /dev/kmsg soubor.
-x, --decode Dekóduje čísla zařízení a úrovní na lidsky čitelné předpony.
-h, --help Zobrazí soubor nápovědy se všemi dostupnými možnostmi.

Příklady příkazů Linux dmesg

Příklady jsou běžné dmesg případy použití příkazů.

Zobrazit všechny zprávy z kruhové vyrovnávací paměti jádra

Vyvolání dmesg bez jakýchkoli voleb vypíše celou vyrovnávací paměť jádra, bez zastávek a bez možnosti navigace ve výstupu.

sudo dmesg

Výše uvedený příklad je částečný dmesg příkazový výstup. Pro snazší navigaci a lepší čitelnost použijte kanál dmesg výstup do terminálového pageru, jako je less , more nebo použijte grep .

Například:

sudo dmesg | less

Potrubí dmesg na less umožňuje použít funkci vyhledávání k nalezení a zvýraznění položek. Aktivujte vyhledávání stisknutím / . Přejděte na další obrazovku pomocí mezerníku nebo zpět pomocí B klíč. Výstup ukončíte stisknutím Q .

Zobrazit barevné zprávy

Ve výchozím nastavení dmesg vytváří barevný výstup. Pokud výstup není barevný, použijte -L možnost obarvení.

sudo dmesg -L

Chcete-li vypnout barevné výstupy, připojte --color=never možnost dmesg . Spusťte následující příkaz:

sudo dmesg --color=never

Výchozí dmesg výstup je nyní barevně jednotný.

Zobrazovat zprávy při jejich příchodu

Monitorujte vyrovnávací paměť jádra v reálném čase pomocí --follow volba. Tato možnost říká příkazu, aby po spuštění systému čekal na nové zprávy týkající se hardwaru nebo modulů jádra.

Spusťte následující dmesg příkaz k povolení monitorování kruhové vyrovnávací paměti jádra v reálném čase:

sudo dmesg --follow

Příkaz zobrazí všechny nové zprávy ve spodní části okna terminálu. Zastavte proces pomocí Ctrl+C .

Vyhledejte konkrétní výraz

Při hledání konkrétních problémů nebo hardwarových zpráv použijte kanál dmesg výstup do grep pro vyhledání určitého řetězce nebo vzoru.

Pokud například hledáte zprávy o paměti, spusťte následující příkaz:

dmesg | grep -i memory

Výstup zobrazuje všechny řádky z vyrovnávací paměti obsahující memory tětiva. -i (ignorovat velká a malá písmena) přepínač ignoruje citlivost péče.

Případně, pokud hledáte zprávy ve vyrovnávací paměti o USB, sériových portech, síti nebo pevných discích, spusťte následující příkazy:

USB

dmesg | grep -i usb

Sériové porty

dmesg | grep -i tty

Síť

dmesg | grep -i eth

Pevné disky

sudo dmesg | grep -i sda

Hledejte více výrazů najednou přidáním -E možnost grep a poskytnutí hledaných výrazů uzavřených v uvozovkách, oddělených svislými oddělovači. Například:

sudo dmesg | grep -E "memory|tty"

Výstup vytiskne všechny zprávy obsahující některý z hledaných výrazů.

Čtení a vymazání protokolů dmesg

-c (--read-clear ) umožňuje vymazat dmesg log po vytištění. Vymazáním vyrovnávací paměti zajistíte, že budete mít pouze platné zprávy z posledního restartu.

Spusťte následující příkaz:

sudo dmesg -c

Opětovné spuštění dmesg nemá žádný výstup, protože protokol byl vymazán.

Povolit časová razítka v protokolech dmesg

Povolte časová razítka v dmesg výstup jeho připojením s -H (--human ), která vytváří výstup čitelný pro člověka a automaticky jej převádí do pageru (less ).

Spusťte následující příkaz:

sudo dmesg -H

Příkaz přidá časové razítko s datem a časem v minutách. Události ve stejné minutě jsou označeny sekundami a nanosekundami.

Opusťte pager stisknutím Q .

Povolit člověkem čitelná časová razítka

Povolte časová razítka čitelná pro člověka pomocí -T (--ctime ) možnost. Tato možnost odstraňuje z výstupu přesnost na nanosekundy, ale časové značky se snáze sledují.

sudo dmesg -T

Časová razítka ve výstupu jsou standardní data a čas a rozlišení je v minutách. Ke každé akci, ke které došlo ve stejnou minutu, je připojeno stejné časové razítko.

Vyberte Formát časového razítka

Použijte --time-format [format] možnost výběru formátu časového razítka. Dostupné formáty jsou:

  • ctime
  • reltime
  • delta
  • notime
  • iso

Chcete-li například použít iso formát, spusťte:

sudo dmesg --time-format=iso

Formát časového razítka je nyní YYYY-MM-DD<T>HH:MM:SS,<microseconds>←+><timezone offset from UTC> .

Omezit výstup dmesg na konkrétní zařízení

Filtrujte dmesg výstup do konkrétní kategorie pomocí -f volba. Systém seskupuje zprávy v kruhové vyrovnávací paměti jádra do následujících zařízení (kategorií):

  • kern . Zprávy jádra.
  • user . Zprávy na uživatelské úrovni.
  • mail . E-mailové systémové zprávy.
  • daemon . Zprávy o systémových démonech.
  • auth . Autorizační zprávy.
  • syslog . Interní syslogd zprávy.
  • lpr . Zprávy subsystému řádkové tiskárny.
  • news . Zprávy podsystému síťové zprávy.

Například následující příkaz omezuje výstup na zprávy související s syslog zařízení:

sudo dmesg -f syslog

Chcete-li vypsat zprávy z více než jednoho zařízení, zadejte seznam zařízení oddělených čárkami. Například:

sudo dmesg -f syslog,daemon

Filtrovat úrovně protokolu

dmesg příkaz spojuje každou zprávu ve vyrovnávací paměti s úrovní protokolu charakterizující důležitost zprávy. Dostupné úrovně jsou:

  • emerg . Nouzové zprávy.
  • alert . Upozornění vyžadující okamžitou akci.
  • crit . Kritické podmínky.
  • err . Chybové zprávy.
  • warn . Varovné zprávy.
  • alert . Normální, ale významné stavy.
  • info . Informační zprávy.
  • debug . Zprávy na úrovni ladění.

Pokyn dmesg vytisknout pouze zprávy odpovídající určité úrovni pomocí -l možnost následovaná názvem úrovně. Například:

sudo dmesg -l info

Výše uvedený příklad extrahuje z protokolu pouze informační zprávy.

Zkombinujte více úrovní v seznamu odděleném čárkami a načtěte zprávy z těchto úrovní. Například:

sudo dmesg -l notice,warn

Výstup kombinuje zprávy ze zadaných úrovní protokolu.

Kombinace zařízení a úrovně

Explicitně zobrazte zařízení a úroveň protokolu každé zprávy na začátku každého řádku pomocí -x (dekódovat).

Například:

sudo dmesg -x

Ve výše uvedeném příkladu je každému řádku předřazena odpovídající úroveň zařízení a protokolu.

Přečtěte si soubor protokolu dmesg

Při každém spuštění systému se zprávy z kruhové vyrovnávací paměti jádra uloží do /var/log/dmesg soubor. dmesg příkaz zobrazí obsah souboru protokolu. Pokud máte problémy s používáním dmesg otevřete soubor protokolu v textovém editoru a zobrazte jeho obsah.

V níže uvedeném příkladu používáme příkaz cat k zobrazení souboru protokolu a přesměrování do grep pro vyhledání konkrétního řetězce vyskytujícího se v protokolu:

cat dmesg | grep amd

Příkaz vypíše všechny amd instance řetězců v souboru protokolu.

Vyhledejte jednotku CD

Zkontrolujte, zda je vzdálený počítač vybaven jednotkou CD prohlédnutím protokolu zpráv vyrovnávací paměti. Například následující příkaz zobrazí všechny zprávy o zařízeních CD inicializovaných při spuštění:

sudo dmesg | grep -iE 'cdrom|dvd|cd/rw|cd-rom'

Výsledky zobrazují informace o dostupných jednotkách CD-ROM, včetně virtuální jednotky CD-ROM na tomto počítači.

Odstranění požadavku sudo

Odstranění požadavku na oprávnění superuživatele umožňuje každému uživateli spouštět dmesg a zobrazit zprávy kruhové vyrovnávací paměti jádra. Spusťte následující příkaz k odstranění požadavku sudo:

sudo sysctl -w kernel.dmesg_restrict=0

Po nastavení omezení na 0 , může každý uživatel v systému spustit dmesg .


Ubuntu
  1. Jak používat Linuxový příkaz grep

  2. Jak používat příkaz historie v Linuxu

  3. Jak používat příkaz Apt-Get v Linuxu

  1. Jak používat příkaz sudo v Linuxu

  2. Jak používat příkaz hostname v Linuxu

  3. Jak používat příkaz Passwd v Linuxu

  1. Jak používat příkaz wall v Linuxu

  2. Jak používat příkaz Modprobe v Linuxu

  3. Jak používat w Command v Linuxu s příklady