Ú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:
ctimereltimedeltanotimeiso
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ísyslogdzprá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 .