Linuxové jádro je jádrem operačního systému, který řídí přístup k systémovým prostředkům, jako je CPU, I/O zařízení, fyzická paměť a systémy souborů. Jádro zapisuje různé zprávy do kruhové vyrovnávací paměti jádra během procesu spouštění a při běhu systému. Tyto zprávy obsahují různé informace o provozu systému.
Kruhová vyrovnávací paměť jádra je část fyzické paměti, která obsahuje zprávy protokolu jádra. Má pevnou velikost, což znamená, že jakmile se vyrovnávací paměť zaplní, budou starší záznamy protokolů přepsány.
Soubor dmesg nástroj příkazového řádku se používá k tisku a ovládání kruhové vyrovnávací paměti jádra v Linuxu a dalších operačních systémech podobných Unixu. Je to užitečné pro zkoumání zaváděcích zpráv jádra a ladění problémů souvisejících s hardwarem.
V tomto tutoriálu probereme základy dmesg příkaz.
Použití dmesg Příkaz #
Syntaxe pro dmesg příkaz je následující:
dmesg [OPTIONS]
Při vyvolání bez jakýchkoli voleb dmesg zapisuje všechny zprávy z kruhové vyrovnávací paměti jádra na standardní výstup:
dmesg
Ve výchozím nastavení mohou všichni uživatelé spouštět dmesg příkaz. Na některých systémech však přístup k dmesg může být omezeno pro uživatele bez oprávnění root. V této situaci při vyvolání dmesg zobrazí se chybová zpráva jako níže:
dmesg: read kernel buffer failed: Operation not permitted
Parametr jádra kernel.dmesg_restrict určuje, zda mohou neprivilegovaní uživatelé používat dmesg pro zobrazení zpráv z vyrovnávací paměti protokolu jádra. Chcete-li omezení odstranit, nastavte jej na nulu:
sudo sysctl -w kernel.dmesg_restrict=0
Výstup obvykle obsahuje mnoho řádků informací, takže je zobrazitelná pouze poslední část výstupu. Chcete-li zobrazit jednu stránku po druhé, přesuňte výstup do obslužného programu pageru, jako je less nebo more :
dmesg --color=always | less
--color=always se používá k zachování barevného výstupu.
Pokud chcete filtrovat zprávy ve vyrovnávací paměti, použijte grep . Chcete-li například zobrazit pouze zprávy související s USB, zadejte:
dmesg | grep -i usb
dmesg čte zprávy generované jádrem z /proc/kmsg virtuální soubor. Tento soubor poskytuje rozhraní k vyrovnávací paměti jádra a lze jej otevřít pouze jedním procesem. Pokud syslog ve vašem systému běží proces a pokusíte se přečíst soubor pomocí cat , nebo less , příkaz se zablokuje.
syslog démon vypíše zprávy jádra do /var/log/dmesg , takže můžete také použít tento soubor protokolu:
cat /var/log/dmesg Formátování dmesg Výstup #
Soubor dmesg poskytuje řadu možností, které vám pomohou formátovat a filtrovat výstup.
Jedna z nejpoužívanějších možností dmesg je -H (--human ), který umožňuje výstup čitelný pro člověka. Tato možnost vede výstup příkazu do pageru:
dmesg -H
Pro tisk časových razítek čitelných pro člověka použijte -T (--ctime ) možnost:
dmesg -T [Mon Oct 14 14:38:04 2019] IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready
Formát časových razítek lze také nastavit pomocí --time-format <format> volba, která může být ctime, reltime, delta, notime nebo iso. Chcete-li například použít delta formát, zadejte:
dmesg --time-format=delta Můžete také kombinovat dvě nebo více možností:
dmesg -H -T
Chcete-li sledovat výstup dmesg příkaz v reálném čase použijte -w (--follow ) možnost:
dmesg --follow Filtrování dmesg Výstup #
dmesg můžete omezit výstup do daných zařízení a úrovní.
Zařízení představuje proces, který zprávu vytvořil. dmesg podporuje následující funkce protokolu:
kern- zprávy jádrauser- zprávy na uživatelské úrovnimail- poštovní systémdaemon- systémové démonyauth- bezpečnostní/autorizační zprávysyslog- interní zprávy syslogdlpr- subsystém řádkové tiskárnynews- podsystém síťového zpravodajství
-f (--facility <list> ) umožňuje omezit výstup na konkrétní zařízení. Možnost přijímá jednu nebo více zařízení oddělených čárkami.
Chcete-li například zobrazit pouze zprávy jádra a systémových démonů, které byste použili:
dmesg -f kern,daemon
Každá zpráva protokolu je spojena s úrovní protokolu, která ukazuje důležitost zprávy. dmesg podporuje následující úrovně protokolu:
emerg- systém je nepoužitelnýalert- musí být okamžitě přijata opatřenícrit- kritické stavyerr- chybové stavywarn- výstražné podmínkyalert- normální, ale významný stavinfo- informačnídebug- zprávy na úrovni ladění
-l (--level <list> ) omezuje výstup na definované úrovně. Možnost přijímá jednu nebo více úrovní oddělených čárkami.
Následující příkaz zobrazí pouze chybové a kritické zprávy:
dmesg -l err,crit Vymazání vyrovnávací paměti vyzvánění #
-C (--clear ) umožňuje vymazat vyrovnávací paměť vyzvánění:
sudo dmesg -C Pouze root nebo uživatelé s právy sudo mohou vymazat vyrovnávací paměť.
Chcete-li před vymazáním vytisknout obsah vyrovnávací paměti, použijte -c (--read-clear ) možnost:
sudo dmesg -c
Pokud chcete uložit aktuální dmesg přihlásí soubor, než jej vymaže, přesměruje výstup do souboru:
dmesg > dmesg_messages Závěr č.
Soubor dmesg umožňuje zobrazit a ovládat vyrovnávací paměť jádra. Může to být velmi užitečné při řešení problémů s jádrem nebo hardwarem.
Zadejte man dmesg ve vašem terminálu, kde najdete informace o všech dostupných dmesg možnosti.
Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.