V této příručce se budu zabývat tím, jak zobrazit protokoly systemd v systému Linux pomocí různých nástrojů příkazového řádku.
Poznámka: Příkazy uvedené v této příručce se provádějí na Ubuntu. Budou fungovat bez chyb na všech distribucích Linuxu, které jsou dodávány se systémem systemd init.
Metody zobrazení protokolů systemctl
Existují dva přístupy k zobrazení protokolů systemd v systému Linux:
Systemctl poskytuje nejnovější protokoly specifické pro službu, zatímco journalctl poskytuje podrobné systémové protokoly všech služeb a konkrétní služby.
Prozkoumám oba nástroje pro zobrazení protokolů systemd. Nejprve však pochopme klíčový rozdíl mezi příkazy systemctl a journalctl.
Co je systemctl
Systemctl je nástroj příkazového řádku, který spravuje služby systemd, jako je povolení nebo zakázání služby a zobrazení stavu. The stav systemctl příkaz také vytiskne několik řádků protokolu služby ve spodní části výstupu a tento protokol je po nedávném spuštění. Tyto řádky protokolu služby však pocházejí pouze z období po aktuálním spuštění.
Co je journalctl
Journalctl je obslužný program příkazového řádku používaný k tisku protokolů shromážděných systémem systemd. Oproti systemctl poskytuje detailní výstup s možnostmi filtrování. Tento nástroj je navržen tak, aby:
- Číst protokoly (nejstarší protokol je na prvním místě)
- Sledujte protokoly
- Filtrujte protokoly podle času, služby nebo uživatele
Systemd shromažďuje protokoly z jádra, služeb a démonů a ukládá je na centralizovaném místě.
Jak zobrazit protokol služby pomocí systemctl
Obecná syntaxe pro nalezení protokolu služby pomocí systemctl užitečnost je zmíněna níže.
stav systemctl [ Název služby ]Chcete-li například zobrazit informace protokolu o smbd.služba použijte příkaz uvedený níže.
systemctl status smbd.service
Chcete-li získat výstup bez stránkování, přidejte – bez pageru možnost v příkazu.
systemctl status smbd.service --no-pager
Jak zobrazit protokol služby pomocí journalctl
Chcete-li zobrazit protokol konkrétní služby systemd, použijte journalctl s -v název velení a služby nebo jednotky.
journalctl -v [ Název služby ]Ve výše uvedeném příkazu je -v vlajka, zkratka pro -jednotka se používá k filtrování journalctl výstup podle názvu jednotky.
Chcete-li například vytisknout protokol smbd démona, vyměním [jméno jednotky] s smbd.služba .
journalctl -v smbd.služba
Ve výstupu je vidět, že nejstarší záznam je uveden jako první a poté se zaznamenává po každém spuštění.
Chcete-li získat nejnovější záznam, nejprve použijte -To je zkratka pro – konec pageru.
journalctl -v smbd.služba -To je
Pokud chcete z výstupu vynechat stránkování, jednoduše připojte – bez pageru ve výše uvedených příkazech.
Chcete-li průběžně tisknout záznamy protokolu v reálném čase -F zkratka pro -následovat .
journalctl -v smbd.služba -FFiltrování lze dále rozšířit použitím parametru -b zkratkou pro – bota , který vytiskne protokoly na základě aktuálního spouštění.
journalctl -v [ název-jednotky ] -bVytiskneme protokoly smbd.služba z nedávného spuštění.
journalctl -v smbd.služba -b
Výše uvedený výstup se podobá výstupu, který získáme pomocí stav systemctl příkaz.
Chcete-li získat podrobný přehled protokolu, použijte -X zkratka pro -katalog volba.
journalctl -v smbd.služba -XTím se připojí krátký popis protokolu.
Nyní, pro tisk protokolů na základě času pomocí journalctl existují dvě možnosti, -S zkratka pro -od té doby a -V zkratka pro -až do .
journalctl -v [ název-jednotky ] -S '[rok-měsíc-den] [hodiny:minuty:sekundy]'Například pro zobrazení protokolů jednotky smbd z 2024:01:30 12:05:00 .
journalctl -v smbd.služba -S '2024:01:30 12:05:00'
Závěr
Chcete-li zobrazit protokoly systemd služby, existují dva hlavní nástroje, journalctl a systemctl. Journalctl je speciálně navržen pro prohlížení protokolů systemd. Systemctl má však také možnost tisku protokolu služby. Chcete-li vytisknout protokol používání služby, journalctl -u [jméno jednotky] a systemctl [jméno jednotky].