V tejto príručke sa budem zaoberať tým, ako zobraziť protokoly systemd v systéme Linux pomocou rôznych nástrojov príkazového riadka.
Poznámka: Príkazy uvedené v tejto príručke sa vykonávajú na Ubuntu. Budú fungovať bez chýb na všetkých distribúciách Linuxu, ktoré sa dodávajú so systémom systemd init.
Metódy zobrazenia denníkov systemctl
Existujú dva prístupy k prezeraniu denníkov systemd v systéme Linux:
Systemctl poskytuje najnovšie protokoly špecifické pre službu, zatiaľ čo journalctl poskytuje podrobné protokoly pre celý systém všetkých služieb a konkrétnej služby.
Preskúmam oba nástroje na zobrazenie protokolov systemd. Najprv však pochopme kľúčový rozdiel medzi príkazmi systemctl a journalctl.
Čo je systemctl
Systemctl je nástroj príkazového riadka, ktorý spravuje systémové služby, ako je povolenie alebo zakázanie služby a zobrazenie stavu. The stav systemctl príkaz tiež vypíše niekoľko riadkov protokolu služby v spodnej časti výstupu a tento protokol je po nedávnom spustení. Tieto riadky denníka služby však pochádzajú iba z obdobia po aktuálnom spustení.
Čo je journalctl
Journalctl je pomocný program príkazového riadka, ktorý sa používa na tlač protokolov zhromaždených systémom systemd. Oproti systemctl poskytuje detailný výstup s možnosťami filtrovania. Tento nástroj je navrhnutý tak, aby:
- Čítanie denníkov (najstarší denník je prvý)
- Monitorujte denníky
- Filtrujte denníky podľa času, služby alebo používateľa
Systemd zhromažďuje protokoly z jadra, služieb a démonov a ukladá ich na centralizovanom mieste.
Ako zobraziť denník služby pomocou systemctl
Všeobecná syntax na nájdenie protokolu služby pomocou systemctl užitočnosť je uvedená nižšie.
stav systemctl [ názov služby ]Napríklad, ak chcete zobraziť informácie denníka smbd.service použite príkaz uvedený nižšie.
systemctl status smbd.service
Ak chcete získať výstup bez stránkovania, pridajte – bez pagera možnosť v príkaze.
systemctl status smbd.service --no-pager
Ako zobraziť denník služby pomocou journalctl
Ak chcete zobraziť denník konkrétnej služby systemd, použite journalctl s -v názov velenia a služby alebo jednotky.
journalctl -v [ názov služby ]Vo vyššie uvedenom príkaze je -v vlajka, skratka pre -jednotka sa používa na filtrovanie journalctl výstup podľa názvu jednotky.
Napríklad, ak chcete vytlačiť denník smbd démon, vymením [názov jednotky] s smbd.service .
journalctl -v smbd.service
Vo výstupe je vidieť, že najstarší záznam prichádza ako prvý a potom sa prihlási po každom spustení.
Ak chcete získať najnovší záznam, najskôr ho použite -To je skratka pre – koniec pagera.
journalctl -v smbd.service -To je
Ak chcete z výstupu vynechať stránkovanie, jednoducho pripojte – bez pagera vo vyššie uvedených príkazoch.
Ak chcete nepretržite tlačiť záznamy denníka v reálnom čase -f skratka pre – sledovať .
journalctl -v smbd.service -fFiltrovanie možno ďalej rozšíriť použitím príznaku -b skratka pre – topánka , ktorý vytlačí protokoly na základe aktuálneho spustenia.
journalctl -v [ unit-name ] -bVytlačíme denníky smbd.service z nedávneho spustenia.
journalctl -v smbd.service -b
Vyššie uvedený výstup sa podobá výstupu, ktorý získame pomocou stav systemctl príkaz.
Ak chcete získať podrobný prehľad denníka, použite -X skratka pre -katalóg možnosť.
journalctl -v smbd.service -XTým sa pripojí krátky popis denníka.
Ak chcete tlačiť denníky na základe času pomocou journalctl, existujú dve možnosti, -S skratka pre – odkedy a -V skratka pre – až .
journalctl -v [ unit-name ] -S '[rok-mesiac-deň] [hodiny:minúty:sekundy]'Napríklad na zobrazenie denníkov jednotky smbd od 2024:01:30 12:05:00 .
journalctl -v smbd.service -S '2024:01:30 12:05:00'
Záver
Na zobrazenie protokolov systemd služby existujú dva hlavné pomocné programy, journalctl a systemctl. Journalctl je špeciálne navrhnutý na prezeranie protokolov systemd. Systemctl má však aj možnosť tlače denníka služby. Ak chcete vytlačiť denník používania služby, journalctl -u [názov jednotky] a systemctl [názov jednotky].