Diagnostyka Sprzętu i Logów (lsusb, dmesg, journalctl)
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(lubmessages): ogólne logi.auth.log(lubsecure): 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"