În acest ghid, voi aborda cum să vizualizați jurnalele de sistem pe Linux folosind diferite utilitare de linie de comandă.
Notă: Comenzile menționate în acest ghid sunt efectuate pe Ubuntu. Ele vor funcționa fără erori pe toate distribuțiile Linux care vin cu sistemul systemd init.
Metode de vizualizare a jurnalelor systemctl
Există două abordări pentru vizualizarea jurnalelor de sistem pe Linux:
Systemctl oferă cele mai recente jurnale specifice serviciului, în timp ce journalctl oferă jurnalele aprofundate la nivelul întregului sistem ale tuturor serviciilor și serviciului specific.
Voi explora ambele utilitare pentru a vedea jurnalele de sistem. Dar mai întâi, să înțelegem diferența cheie dintre comenzile systemctl și journalctl.
Ce este systemctl
Systemctl este un utilitar de linie de comandă care gestionează serviciile systemd, cum ar fi activarea sau dezactivarea serviciului și vizualizarea stării. The starea systemctl comanda imprimă, de asemenea, câteva linii de jurnal ale serviciului în partea de jos a ieșirii, iar acest jurnal este după pornirea recentă. Cu toate acestea, aceste linii de jurnal ale serviciului apar numai după pornirea curentă.
Ce este journalctl
Journalctl este un utilitar de linie de comandă folosit pentru a tipări jurnalele colectate de systemd. În comparație cu systemctl, oferă rezultate detaliate cu opțiuni de filtrare. Acest utilitar este conceput pentru a:
- Citiți jurnalele (cel mai vechi jurnal este primul)
- Monitorizați jurnalele
- Filtrați jurnalele în funcție de timp, serviciu sau utilizator
Systemd colectează jurnalele de la kernel, servicii și demoni și le stochează într-un loc centralizat.
Cum să vizualizați jurnalul unui serviciu utilizând systemctl
Sintaxa generală pentru a găsi jurnalul unui serviciu folosind systemctl utilitatea este menționată mai jos.
starea systemctl [ numele serviciului ]De exemplu, pentru a vizualiza informațiile de jurnal ale smbd.service utilizați comanda dată mai jos.
systemctl status smbd.service
Pentru a obține rezultate fără paginare, adăugați – fără paginator opțiunea din comandă.
systemctl status smbd.service --no-pager
Cum să vizualizați jurnalul unui serviciu folosind journalctl
Pentru a vizualiza jurnalul unui anumit serviciu al systemd, utilizați jurnalctl cu -în comanda și numele serviciului sau al unității.
jurnalctl -în [ numele serviciului ]În comanda de mai sus, -în steag, prescurtare pentru -unitate este folosit pentru a filtra jurnalctl ieșit de un nume de unitate.
De exemplu, pentru a tipări jurnalul smbd daemon, voi înlocui [nume-unitate] cu smbd.service .
jurnalctl -în smbd.service
În rezultat, se poate vedea că cea mai veche intrare vine mai întâi și apoi se înregistrează după ce este listată fiecare boot.
Pentru a obține cea mai recentă intrare, utilizați prima dată -Este scurt pentru – sfârşitul paginii.
jurnalctl -în smbd.service -Este
Dacă doriți să omiteți paginarea din rezultat, adăugați pur și simplu – fără paginator în comenzile de mai sus.
Pentru a imprima continuu intrările de jurnal în timp real -f scurt pentru -urma .
jurnalctl -în smbd.service -fFiltrarea poate fi extinsă în continuare folosind simbolul -b scurt pentru – cizma , care tipărește jurnalele pe baza pornirii curente.
jurnalctl -în [ nume-unitate ] -bSă tipărim jurnalele smbd.service de la boot-ul recent.
jurnalctl -în smbd.service -b
Ieșirea de mai sus seamănă cu cea pe care o obținem folosind starea systemctl comanda.
Pentru a obține o prezentare detaliată a jurnalului, utilizați -X scurt pentru -catalog opțiune.
jurnalctl -în smbd.service -XAceasta va adăuga o scurtă descriere a jurnalului.
Acum, pentru a imprima jurnalele bazate pe timp folosind journalctl, există două opțiuni, -S scurt pentru -de cand și -ÎN scurt pentru -pana cand .
jurnalctl -în [ nume-unitate ] -S „[an-lună-zi] [ore:minute:secunde]”De exemplu, pentru a vizualiza jurnalele unității smbd din 2024:01:30 12:05:00 .
jurnalctl -în smbd.service -S „2024:01:30 12:05:00”
Concluzie
Pentru a vizualiza jurnalele de sistem ale unui serviciu, există două utilitare principale, journalctl și systemctl. Journalctl este proiectat special pentru vizualizarea jurnalelor de systemd. Cu toate acestea, systemctl are și o opțiune de tipărire a jurnalului serviciului. Pentru a imprima jurnalul de utilizare a unui serviciu, journalctl -u [numele-unității] și systemctl [nume-unitate].