Porady Admina: dmesg

W dwunastej odsłonie cyklu Porady Admina przeanalizujemy program dmesg.

dmesg (ang. diagnostic message) – polecenie systemowe rodziny Unix wyświetlające bufor warstwy jądra. Umożliwia m.in. wyświetlenie komunikatów startowych ładowania systemu. dmesg służy do sprawdzenia bufora warstwy jądra (kernel ring buffer) lub sterowania nim. Domyślnym działaniem jest wyświetlenie wszystkich wiadomości z bufora warstwy jądra.

Mówiąc potocznie, polecenie dmesg pozwala zajrzeć do ukrytego świata procesów startowych Linuksa.

Program dmesg jest częścią pakietu narzędzi o nazwie 'util-linux’ i powinien być domyślnie zainstalowany w większości dystrybucji Linux i BSD.

Składnia

dmesg OPCJE

Opcje

-C, –clear Czyści zawartość bufora.
-c, –read-clear Czyści zawartość bufora po jego pierwszym wyświetleniu.
-D, –console-off Wyłącza wyświetlanie wiadomości w konsoli.
-d, –show-delta Wyświetla znacznik oraz różnicę czasu pomiędzy komunikatami. Jeśli opcja ta jest używana razem z –notime, to wypisywana jest tylko różnica czasu.
-E, –console-on Włącza wyświetlanie wiadomości w konsoli.
-e, –reltime Wyświetla czas lokalny i różnicę czasu w formacie czytelnym dla ludzi. Zauważ, że konwersja do czasu lokalnego może być niedokładna.
-F, –file plik Odczytuje komunikaty syslog z podanego pliku. Zauważ, że -F nie obsługuje wiadomości w formacie kmsg. Obsługiwany jest wyłącznie stary format syslog.
-f, –facility lista Ogranicza wyjście do podanej listy (z elementami oddzielonymi przecinkami) zagadnień.
-H, –human Włącza wyświetlanie czytelne dla ludzi. Zob. również –color, –reltime i –nopager.
-J, –json Use JSON output format. The time output format is in „sec.usec” format only, log priority level is not decoded by default (use –decode to split into facility and priority), the other options to control the output format or time format are silently ignored.
-k, –kernel Wyświetla wiadomości jądra.
-L, –color[=kiedy] Koloryzuje wynik. Opcjonalnym argumentem kiedy może być auto, never (nigdy) lub always (zawsze). Gdy nie poda się argumentu kiedy, domyślnym ustawieniem jest auto. Kolory mogą być wyłączone, aktualne wbudowane ustawienie domyślne pokaże opcja –help.
-l, –level lista Ogranicza wyjście do podanej listy (z elementami oddzielonymi przecinkami) poziomów.
-n, –console-level poziom Ustawia poziom, na którym odbywa się wyświetlanie komunikatów na konsoli. Za poziom należy podstawić numer poziomu lub skróconą nazwę poziomu.
-n, to dmesg nie wyświetla ani nie czyści bufora warstwy jądra.
-P, –nopager Nie przekazuje wyjścia na program stronicujący, który jest domyślnie włączony dla opcji –human output.
-p, –force-prefix Dodaje element, poziom lub znacznik czasu do każdego wiersza komunikatu wielowierszowego.
-r, –raw Wyświetla surowy bufor wiadomości, np. nie przycina przedrostków poziomu dziennika; wszystkie znaki niedrukowalne są jednak wciąż cytowane
-S, –syslog Wymusza używanie przez dmesg interfejsu jądra syslog(2) do czytania komunikatów jądra.
-s, –buffer-size rozmiar Do odpytania bufora jądra używa bufora o podanej wielkości. Domyślnie jest to 16392 (domyślny rozmiar bufora syslog jądra wynosił początkowo 4096, 8192 od wersji 1.3.54 i 16384 od wersji 2.1.113). Jeśli użytkownik ustawił bufor jądra większy od domyślnego, to można posłużyć się tą opcją do przeglądnięcia całego bufora.
-T, –ctime Wypisuje znaczniki czasu w formie czytelnej dla człowieka.
–time-format format Wypisuje znacznik czasu w podanym formacie, którym może być ctime, reltime, delta lub iso.
-u, –userspace Wypisuje wiadomości z przestrzeni użytkownika.
-w, –follow Czeka na nowe komunikaty. Ta funkcja jest obsługiwana tylko w systemach z dającym się odczytać /dev/kmsg
-W, –follow-new Czeka i wyświetla tylko nowe wiadomości.
-x, –decode Dekoduje numery zagadnienia (ang. facility) i poziomu (priorytetu) do przedrostków czytelnych dla człowieka.

Przykłady

Polecenie dmesg umożliwia przeglądanie wiadomości przechowywanych w buforze pierścieniowym. Domyślnie musisz użyć sudo, aby użyć dmesg.

sudo dmesg

Wszystkie wiadomości z bufora są wyświetlane w oknie terminala. Ilość wiadomości jest zazwyczaj duża, można dodatkowo użyć polecenia 'less’

sudo dmesg | less

Teraz możemy przewijać wiadomości w poszukiwaniu interesujących informacji.

Kolor

Domyślnie dmesg będzie prawdopodobnie skonfigurowany do generowania kolorowego wyjścia. Jeśli tak nie jest, możesz powiedzieć dmesg, aby pokolorował dane wyjściowe za pomocą opcji -L (kolor).

sudo dmesg -L

lub

sudo dmesg --color=always

Ludzkie znaczniki czasu

Domyślnie dmesg używa notacji sygnatury czasowej sekund i nanosekund od uruchomienia jądra. Aby renderować to w bardziej przyjaznym dla człowieka formacie, użyj opcji -H (human).

sudo dmesg -H

Sygnatury czasowe czytelne dla człowieka

Jeśli nie potrzebujesz dokładności nanosekundowej, ale potrzebujesz znaczników czasu, które są łatwiejsze do odczytania niż domyślne, użyj opcji -T.

sudo dmesg -T

Pobierz ostatnie dziesięć wiadomości

Użyj polecenia tail, aby pobrać ostatnie dziesięć komunikatów bufora pierścienia jądra. Oczywiście możesz pobrać dowolną liczbę wiadomości. Dziesięć to tylko nasz przykład.

sudo dmesg | tail -10

Wyszukiwanie konkretnych fraz

Użyj dmesg wraz grep, aby wyszukać określone ciągi lub wzorce za pomocą opcji -i, aby zignorować wielkość liter pasujących. Nasze wyniki będą zawierać „usb” i „USB” oraz wszelkie inne kombinacje małych i wielkich liter.

sudo dmesg | grep -i usb

Wszystkie informacje o programie dmesg uzyskasz poleceniami:

dmesg -h
man dmesg

One thought on “Porady Admina: dmesg

  • 22 września 2022 at 09:23
    Permalink

    Fajny cykl porad admina, zwłaszcza dla początkujących.
    Przydałby się opis grub-rescue z zastosowaniem chroot (arch-chroot)
    zwłaszcza po wpadce z updatem w EndeavourOS po ktorym padł grub.
    Mi padły dwa laptopy zaszyfrowane. Po naprawie zostały mi dziwne problemy z openvpn.
    Pozdrawiam. ArO.

    Reply

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

Witryna jest chroniona przez reCAPTCHA i Google Politykę Prywatności oraz obowiązują Warunki Korzystania z Usługi.