Ú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
.