Wprowadzenie do polecenia dmesg w systemie Linux

An Introduction Linux S Dmesg Command



Każdy system operacyjny, w tym Linux, wykonuje pewne czynności po cichu, bez powiadamiania użytkownika. Chociaż użytkownik nie jest świadomy tych działań, może być konieczne sprawdzenie tych działań w celu zidentyfikowania problemów z systemem operacyjnym i urządzeniami podłączonymi do systemu komputerowego.

Na szczęście dla systemu operacyjnego Linux wszystkie te działania są rejestrowane w buforze pierścieniowym, do którego można uzyskać dostęp za pomocą polecenia wiadomości diagnostycznych (lub dmesg). Polecenie dmesg w systemie Linux może być używane do wyświetlania wszystkich komunikatów związanych ze zdarzeniami zachodzącymi w systemie operacyjnym. W tym artykule dowiesz się, jak korzystać z tego przydatnego polecenia w systemie Linux.







Uwaga: w tym samouczku użyliśmy Linux Mint 20



Użycie poleceń

Wyjaśnimy użycie polecenia wiadomości diagnostycznych na kilku przykładach.



Przykład #1: Przeglądanie wszystkich komunikatów diagnostycznych

Wykonując te czynności, możemy jednocześnie wyświetlić wszystkie rodzaje komunikatów diagnostycznych.





Najpierw musimy kliknąć ikonę skrótu terminala Linux Mint 20, aby go uruchomić.

Możesz zobaczyć nowo uruchomiony terminal na poniższym obrazku:



Teraz po prostu uruchomimy w terminalu następujące polecenie:

Uruchomienie tego polecenia spowoduje wyświetlenie długiej listy komunikatów diagnostycznych na twoim terminalu. Możesz przewinąć w dół, aby zobaczyć wszystkie wiadomości, jak pokazano na poniższym obrazku:

Przykład #2: Wyświetlanie komunikatów diagnostycznych strona po stronie

W poprzednim przykładzie lista komunikatów diagnostycznych była bardzo długa i niepraktyczna do przeczytania. Dlatego warto przeglądać te wiadomości strona po stronie. co można zrobić za pomocą polecenia less w systemie Linux. W poniższym poleceniu przesyłamy dane wyjściowe polecenia dmesg do polecenia less, aby komunikaty diagnostyczne były wyświetlane strona po stronie.

Możesz zobaczyć dane wyjściowe zmodyfikowanego polecenia dmesg na poniższym obrazku.

Po przeczytaniu pierwszej strony możesz nacisnąć spację, aby przejść do następnej strony i tak dalej, aż do osiągnięcia ostatniej strony, jak wskazuje słowo kluczowe END na poniższym obrazku:

Przykład #3: Wyświetlanie komunikatów diagnostycznych o określonym poziomie ważności

Poziomy ważności komunikatów diagnostycznych różnią się w zależności od celu, jakim służą. Na przykład niektóre wiadomości zawierają ogólne informacje, podczas gdy inne zawierają ostrzeżenia. Możesz wybrać wyświetlanie wszystkich komunikatów diagnostycznych o określonym poziomie istotności w następujący sposób:

Najpierw uruchom polecenie dmesg –level=LEVEL w terminalu Linux Mint 20. Tutaj musisz zastąpić LEVEL prawidłowym poziomem (np. err, warn, info, notice). W naszym przykładzie, ponieważ chcemy wyświetlić wszystkie komunikaty diagnostyczne poziomu błędu, zastąpiliśmy LEVEL na err.

To polecenie zwróci wszystkie komunikaty diagnostyczne, które mają poziom błędu, jak pokazano na poniższym obrazku:

Przykład #4: Przeglądanie wersji Linuksa za pomocą polecenia dmesg

Kiedy uruchomiliśmy polecenie dmesg bez żadnych innych parametrów, dane wyjściowe były zbyt duże, aby można je było wyświetlić od razu. Wraz ze wszystkimi innymi informacjami, wersja twojego systemu Linux była również wyświetlana w tych danych wyjściowych, ale była trudna do zlokalizowania. Jeśli chcesz zobaczyć swoją wersję systemu Linux za pomocą polecenia dmesg, możesz uruchomić następujące polecenie w swoim terminalu:

Uruchomienie tego polecenia spowoduje wyświetlenie wersji systemu Linux na twoim terminalu, jak pokazano na poniższym obrazku:

Przykład #5: Wyświetlanie komunikatów diagnostycznych z sygnaturami czasowymi

Zdarzenie występuje w systemie operacyjnym w określonym czasie. W przypadku zadań rejestrowania i audytu ważne jest, aby przyjrzeć się sygnaturom czasowym zdarzeń, które mają miejsce w systemie operacyjnym, aby można było dowiedzieć się, kiedy wystąpił problem. Aby wyświetlić sygnatury czasowe komunikatów diagnostycznych, możesz uruchomić poniższe polecenie w swoim terminalu:

Dane wyjściowe na poniższej ilustracji przedstawiają dokładne sygnatury czasowe, w tym dzień, datę i godzinę, przed każdym komunikatem diagnostycznym.

Przykład #6: Przeglądanie komunikatów diagnostycznych związanych z określonym urządzeniem

Komunikaty diagnostyczne wyświetlane po uruchomieniu samej komendy dmesg nie są specyficzne dla żadnego urządzenia; zamiast tego komunikaty dotyczące wszystkich urządzeń są wyświetlane jednocześnie. Możesz jednak chcieć wyświetlić komunikaty diagnostyczne dla konkretnego urządzenia, aby określić problemy związane tylko z tym urządzeniem.

Polecenie dmesg pozwala to zrobić, uruchamiając polecenie dmesg | grep –i URZĄDZENIE. Tutaj musisz zastąpić DEVICE nazwą urządzenia, którego komunikaty diagnostyczne chcesz wyświetlić. W naszym przypadku chcemy sprawdzić komunikaty diagnostyczne myszy. Dlatego zastąpiliśmy DEVICE na Mouse.

Po uruchomieniu tego polecenia wszystkie komunikaty diagnostyczne związane z myszą zostaną wyświetlone na terminalu, jak pokazano na poniższym obrazku. W ten sam sposób można przeglądać komunikaty diagnostyczne dowolnego urządzenia I/O.

Przykład nr 7: Przeglądanie komunikatów diagnostycznych wraz z ich poziomami ważności

W przykładzie 3 obejrzeliśmy komunikaty diagnostyczne o określonym poziomie istotności. Jeśli jednak chcemy wyświetlić wszystkie komunikaty diagnostyczne z ich poziomami ważności, możemy uruchomić polecenie dmesg –x. Flaga -x może być używana z poleceniem dmesg do wyświetlania komunikatów diagnostycznych z ich poziomami ważności.

Na podstawie poniższych danych wyjściowych widać, że poziom ważności komunikatu diagnostycznego pojawia się na początku komunikatu.

Przykład #8: Kasowanie historii komunikatów diagnostycznych

W systemie operacyjnym, który renderuje system operacyjny, mają miejsce tysiące zdarzeń, które generują długą listę komunikatów diagnostycznych, jak pokazano w przykładzie 1. Jednak system Linux zapewnia również sposób na wyczyszczenie tego dziennika.

Aby wyczyścić historię wiadomości diagnostycznych, możesz uruchomić polecenie sudo dmesg –C. Aby wyczyścić historię komunikatów diagnostycznych, co jest ważne dla celów audytu, musisz uruchomić polecenie dmesg z uprawnieniami sudo. W przeciwnym razie nie będziesz mógł wykonać tej operacji. Ponadto flaga -C w połączeniu z poleceniem dmesg odpowiada za czyszczenie dziennika dmesg.

Po uruchomieniu tego polecenia nic nie zostanie wyświetlone na twoim terminalu. Dlatego, aby sprawdzić, czy historia komunikatów diagnostycznych została wyczyszczona, ponownie uruchomimy polecenie dmesg. Tym razem polecenie dmesg nie zwróci żadnych komunikatów diagnostycznych na twoim terminalu, ponieważ historia została usunięta.

Wniosek

Ten samouczek przedstawia komunikaty diagnostyczne generowane przez system operacyjny Linux i pokazuje, jak wyświetlić sygnatury czasowe zdarzeń, które wystąpiły w systemie operacyjnym, jak rejestrować wszystkie zdarzenia o określonym poziomie ważności oraz jak wyświetlić komunikaty diagnostyczne związane z konkretne urządzenie. Bardziej zaawansowane odmiany polecenia dmesg udostępnione w tym artykule mogą być tworzone w celu uzyskania różnych wyników.