Diagnostyka Sprzętu i Logów (lsusb, dmesg, journalctl)

LINUX
Priorytet: Normalny Szkic

Zadanie 201: Diagnostyka Sprzętu i Logów

Wstęp

Jako administrator Linuxa musisz wiedzieć, co fizycznie jest podłączone do serwera (nawet zdalnie) oraz co "boli" system. W tym zadaniu nauczysz się identyfikować urządzenia USB oraz czytać najważniejsze dzienniki systemowe (logi Using dmesg i journalctl).

Wymagania

System Linux (maszyna wirtualna lub fizyczna). Wirtualne maszyny mogą pokazywać mniej urządzeń USB, ale polecenia działają tak samo.


Część 1: Identyfikacja USB (lsusb)

Narzędzie lsusb wyświetla listę urządzeń podłączonych do szyny USB.

Zadanie 1: Lista podstawowa

Uruchom polecenie:

lsusb

Powinieneś zobaczyć listę w formacie: Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub. Kluczowe jest ID (VendorID:ProductID), np. 046d:c077 (myszka Logitech).

Zadanie 2: Szczegóły urządzenia

Wybierz jedno urządzenie z listy i wyświetl jego detale (zastąp 001 i 002 odpowiednim Bus/Device ze swojego wyniku).

lsusb -v -s 001:002

Uwaga: sudo może być wymagane, by zobaczyć wszystko.

Zadanie 3: Widok drzewa

Zobacz strukturę połączeń (które urządzenie jest wpięte do którego huba).

lsusb -t

Część 2: Kernel Ring Buffer (dmesg)

dmesg wyświetla komunikaty jądra (kernela). To tu szukamy błędów sprzętowych i informacji o wykryciu nowych urządzeń.

Zadanie 4: Ostatnie komunikaty

Wyświetl 20 ostatnich linii.

dmesg | tail -n 20

Zadanie 5: Tryb "na żywo"

Podłącz pendrive'a (lub inne USB) do komputera, mając uruchomione to polecenie. Zobaczysz moment wykrycia sprzętu.

dmesg -w

(Użyj Ctrl+C aby przerwać).

Zadanie 6: Filtrowanie błędów

Szukaj tylko wpisów o poziomie "error" lub "warn".

dmesg --level=err,warn

Część 3: Systemd Journal (journalctl)

Nowoczesne systemy (Ubuntu, CentOS, Debian) używają systemd-journald, który zbiera logi z całego systemu (usługi, kernel, boot).

Zadanie 7: Podstawy

Wylistuj logi (użyj strzałek i q do wyjścia).

journalctl

Zadanie 8: Logi z obecnego uruchomienia

To, co działo się od ostatniego włączenia komputera ("boot 0").

journalctl -b 0

Możesz sprawdzić poprzednie uruchomienie: journalctl -b -1.

Zadanie 9: Śledzenie na żywo

Podobnie jak tail -f, ale dla całego systemu. Otwórz to w jednym terminalu, a w drugim spróbuj się przelogować lub podłącz USB.

journalctl -f

Zadanie 10: Filtrowanie po czasie

Pokaż logi z ostatniej godziny.

journalctl --since "1 hour ago"

Zadanie 11: Konkretna usługa

Sprawdź, co "mówi" usługa SSH.

journalctl -u ssh

Część 4: Klasyczne pliki logów

Wiele systemów wciąż trzyma kopie logów w plikach tekstowych w /var/log.

Zadanie 12: Przegląd katalogu

ls -lh /var/log/

Najważniejsze pliki:

  • syslog (lub messages): ogólne logi.
  • auth.log (lub secure): logowania, sudo, autoryzacja.
  • kern.log: komunikaty jądra.

Część 5: Praca Własna (Zadania do wykonania)

Zadanie A: Znajdź Vendor ID

Użyj lsusb na swoim komputerze. Znajdź ID (format XXXX:YYYY) swojej karty sieciowej (Wireless lub Ethernet) lub jeśli to VM - głównego huba. Zapisz ID: __________

Zadanie B: Kto i kiedy?

Użyj grep na pliku /var/log/auth.log (lub journalctl), aby znaleźć informację, o której godzinie dzisiaj zalogowałeś się do systemu (szukaj frazy "session opened" lub "Accepted password"). Polecenie: __________

Zadanie C: Błędy USB

Spróbuj znaleźć w dmesg lub journalctl jakiekolwiek wzmianki o "USB". Czy są jakieś błędy? Polecenie: __________


Commit

cd ..
git add zadanie201/
git commit -m "Linux Zadanie 201: Diagnostyka hardware i logi"