Android

Polecenie Dmesg w systemie Linux

LinuxAdministrator - Podstawowe polecenia cz.1 #004 #LinuxAdministrator #Bash #Linux

LinuxAdministrator - Podstawowe polecenia cz.1 #004 #LinuxAdministrator #Bash #Linux

Spisu treści:

Anonim

Jądro Linux jest rdzeniem systemu operacyjnego, który kontroluje dostęp do zasobów systemowych, takich jak procesor, urządzenia we / wy, pamięć fizyczna i systemy plików. Jądro zapisuje różne komunikaty do bufora pierścieniowego jądra podczas procesu rozruchu i podczas działania systemu. Te komunikaty zawierają różne informacje o działaniu systemu.

Bufor pierścieniowy jądra jest częścią pamięci fizycznej, która przechowuje komunikaty dziennika jądra. Ma ustalony rozmiar, co oznacza, że ​​po zapełnieniu bufora rekordy starszych dzienników zostaną zastąpione.

Narzędzie wiersza polecenia dmesg służy do drukowania i kontrolowania bufora pierścieniowego jądra w systemie Linux i innych systemach operacyjnych typu Unix. Jest to przydatne do sprawdzania komunikatów rozruchowych jądra i debugowania problemów związanych ze sprzętem.

W tym samouczku omówimy podstawy polecenia dmesg .

Korzystanie z polecenia dmesg

Składnia polecenia dmesg jest następująca:

dmesg

Po wywołaniu bez żadnych opcji dmesg zapisuje wszystkie wiadomości z bufora pierścieniowego jądra na standardowe wyjście:

dmesg

Domyślnie wszyscy użytkownicy mogą uruchomić polecenie dmesg . Jednak w niektórych systemach dostęp do dmesg może być ograniczony dla użytkowników innych niż root. W tej sytuacji podczas wywoływania programu dmesg pojawi się komunikat o błędzie, taki jak poniżej:

dmesg: read kernel buffer failed: Operation not permitted

Parametr jądra kernel.dmesg_restrict określa, czy nieuprzywilejowani użytkownicy mogą używać dmesg do przeglądania wiadomości z bufora dziennika jądra. Aby usunąć ograniczenia, ustaw je na zero:

sudo sysctl -w kernel.dmesg_restrict=0

Zwykle dane wyjściowe zawierają wiele wierszy informacji, więc widoczna jest tylko ostatnia część danych wyjściowych. Aby wyświetlić jedną stronę na raz, potokuj dane wyjściowe do narzędzia pagera, takiego jak less lub more :

dmesg --color=always | less

Opcja --color=always służy do zachowania kolorowych wydruków.

dmesg | grep -i usb

dmesg odczytuje komunikaty generowane przez jądro z pliku wirtualnego /proc/kmsg . Ten plik zapewnia interfejs do bufora pierścieniowego jądra i może być otwarty tylko przez jeden proces. Jeśli proces syslog jest uruchomiony w twoim systemie i próbujesz odczytać plik za pomocą cat lub less , polecenie się zawiesi.

Demon syslog zrzuca wiadomości jądra do /var/log/dmesg , więc możesz również użyć tego pliku dziennika:

cat /var/log/dmesg

Formowanie wyjścia dmesg

Polecenie dmesg udostępnia szereg opcji, które pomagają sformatować i filtrować dane wyjściowe.

Jedną z najczęściej używanych opcji dmesg jest -H ( --human ), która umożliwia --human czytelny dla człowieka. Ta opcja przesyła dane wyjściowe polecenia do pagera:

dmesg -H

Aby wydrukować znaczniki czasu czytelne dla człowieka, użyj opcji -T ( --ctime ):

dmesg -T

IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready

Format znaczników czasu można również ustawić za pomocą opcji --time-format opcja, która może być ctime, reltime, delta, notime lub iso. Na przykład, aby użyć formatu delta, wpisz:

dmesg --time-format=delta

Możesz także połączyć dwie lub więcej opcji:

dmesg -H -T

Aby oglądać dane wyjściowe polecenia dmesg w czasie rzeczywistym, użyj opcji -w ( --follow ):

dmesg --follow

Filtrowanie wyjścia dmesg

Możesz ograniczyć wyjście dmesg do podanych udogodnień i poziomów.

Obiekt reprezentuje proces, który utworzył wiadomość. dmesg obsługuje następujące funkcje dziennika:

  • kern - komunikaty jądra user - komunikaty na poziomie użytkownika mail - daemon systemu poczty - demony systemowe auth - komunikaty bezpieczeństwa / autoryzacji syslog - wewnętrzne komunikaty syslogd lpr - podsystem drukarek sieciowych wiadomości - podsystem wiadomości sieciowych

--facility ( --facility ) opcja pozwala ograniczyć wyjście do określonych obiektów. Opcja akceptuje jedno lub więcej obiektów oddzielonych przecinkami.

Na przykład, aby wyświetlić tylko komunikaty jądra i demonów systemowych:

dmesg -f kern, daemon

Każdy komunikat dziennika jest powiązany z poziomem dziennika, który pokazuje ważność komunikatu. dmesg obsługuje następujące poziomy dziennika:

  • emerg - alert systemu nie emerg się do użytku - należy natychmiast podjąć działanie krytyczne - błędy krytyczne warunki - warn błędach - ostrzeżenia o warunkach ostrzegania - normalne, ale istotne info stanie - debug informacyjne - komunikaty na poziomie debugowania

--level ( --level ) ogranicza wyniki do zdefiniowanych poziomów. Opcja akceptuje jeden lub więcej poziomów oddzielonych przecinkami.

Następujące polecenie wyświetla tylko komunikaty o błędach i krytyczne:

dmesg -l err, crit

Czyszczenie bufora pierścieniowego

Opcja -C ( --clear ) umożliwia wyczyszczenie bufora dzwonka:

sudo dmesg -C

Tylko root lub użytkownicy z uprawnieniami sudo mogą wyczyścić bufor.

Aby wydrukować zawartość bufora przed wyczyszczeniem, użyj opcji -c ( --read-clear ):

sudo dmesg -c

dmesg > dmesg_messages

Wniosek

Polecenie dmesg pozwala wyświetlić i kontrolować bufor pierścieniowy jądra. Może być bardzo przydatny podczas rozwiązywania problemów z jądrem lub sprzętem.

Wpisz man dmesg w swoim terminalu, aby uzyskać informacje o wszystkich dostępnych opcjach dmesg .

terminal jądra dmesg