Sådan får du vist Systemctl-logfiler

Sadan Far Du Vist Systemctl Logfiler



Systemd er et af de bredt anvendte init-systemer på Linux. Den vigtigste fordel ved systemd er dens evne til at administrere systemlogfilerne. Den samler alle kernemeddelelser og brugerprocesser i en log kaldet Tidsskrift . Det journalført er dæmonen, der fanger og administrerer logfilerne i en binær fil. Denne dæmon har den vigtigste fordel ved at gemme data i struktureret og indekseret form, hvilket gør det nemt at få adgang til og analysere via journalctl nytte.

I denne vejledning vil jeg dække, hvordan man kan se systemd-logfiler på Linux ved hjælp af forskellige kommandolinjeværktøjer.

Bemærk: Kommandoerne nævnt i denne vejledning udføres på Ubuntu. De vil fungere uden fejl på alle Linux-distributioner, der følger med systemd init-systemet.







Metoder til at se systemctl-logge

Der er to tilgange til at se systemd logs på Linux:



Systemctl'en giver de seneste servicespecifikke logfiler, mens journalctl giver dybdegående systemdækkende logfiler over alle services og den specifikke service.



Jeg vil udforske begge værktøjer for at se systemd logs. Men lad os først forstå den vigtigste forskel mellem systemctl- og journalctl-kommandoer.





Hvad er systemctl

Systemctl er et kommandolinjeværktøj, der administrerer systemtjenester, såsom aktivering eller deaktivering af tjenesten og visning af status. Det systemctl status kommandoen udskriver også et par loglinjer af tjenesten nederst i outputtet, og denne log er efter den seneste opstart. Disse loglinjer for tjenesten er dog kun fra efter den aktuelle opstart.

Hvad er journalctl

journalctl er et kommandolinjeværktøj, der bruges til at udskrive logfilerne indsamlet af systemd. Sammenlignet med systemctl giver det detaljeret output med filtreringsmuligheder. Dette værktøj er designet til at:



  • Læs logfiler (ældste log kommer først)
  • Overvåg logfiler
  • Filtrer logfiler baseret på tid, service eller bruger

Systemd'en indsamler logfiler fra kerne, tjenester og dæmoner og gemmer dem på et centraliseret sted.

Sådan får du vist log over en tjeneste ved hjælp af systemctl

Den generelle syntaks til at finde loggen for en tjeneste ved hjælp af systemctl nytte er nævnt nedenfor.

systemctl status [ tjenestenavn ]

For eksempel for at se logoplysningerne for smbd.service brug kommandoen nedenfor.

systemctl status smbd.service

For at få output uden paginering skal du tilføje – ingen personsøger mulighed i kommandoen.

systemctl status smbd.service --ingen personsøger

Sådan får du vist log over en tjeneste ved hjælp af journalctl

For at se loggen for en specifik service af systemd, brug journalctl med -i kommando og tjeneste eller enhedsnavn.

journalctl -i [ tjenestenavn ]

I ovenstående kommando er -i flag, forkortelse for -enhed bruges til at filtrere journalctl output af et enhedsnavn.

For eksempel at udskrive loggen for smbd dæmon, jeg vil erstatte [enhedsnavn] med smbd.service .

journalctl -i smbd.service

I outputtet kan det ses, at den ældste post kommer først og derefter logger efter hver boot er listet.

For at få den seneste post brug første gang -Det er forkortelse for –pager-ende.

journalctl -i smbd.service -Det er

Hvis du vil udelade pagineringen fra outputtet, skal du blot tilføje – ingen personsøger i de ovennævnte kommandoer.

For løbende at udskrive logposterne i realtidsbrug -f forkortelse for -følge efter .

journalctl -i smbd.service -f

Filtreringen kan udvides yderligere ved at bruge flaget -b forkortelse for -støvle , som udskriver logfilerne baseret på den aktuelle boot.

journalctl -i [ enhedsnavn ] -b

Lad os udskrive logfiler af smbd.service fra den seneste boot.

journalctl -i smbd.service -b

Ovenstående output ligner det output, vi får ved hjælp af systemctl status kommando.

For at få et detaljeret logoverblik skal du bruge -x forkortelse for -katalog mulighed.

journalctl -i smbd.service -x

Dette vil tilføje en kort beskrivelse af loggen.

For nu at udskrive logs baseret på tid ved hjælp af journalctl er der to muligheder, -S forkortelse for -siden og -I forkortelse for -indtil .

journalctl -i [ enhedsnavn ] -S '[år-måned-dag] [timer:minutter:sekunder]'

For eksempel for at se enhedens logfiler smbd fra 2024:01:30 12:05:00 .

journalctl -i smbd.service -S '2024:01:30 12:05:00'

Konklusion

For at se systemlogfilerne for en tjeneste er der to hovedværktøjer, journalctl og systemctl. Journalctl er specielt designet til at se logfilerne for systemd. Systemctl har dog også en mulighed for at udskrive tjenestens log. For at udskrive loggen for en tjenestebrug, journalctl -u [enhedsnavn] og systemctl [enhedsnavn].