In deze handleiding zal ik bespreken hoe je systemd-logboeken op Linux kunt bekijken met behulp van verschillende opdrachtregelhulpprogramma's.
Opmerking: De opdrachten die in deze handleiding worden genoemd, worden uitgevoerd op Ubuntu. Ze zullen zonder fouten werken op alle Linux-distributies die bij het systemd init-systeem worden geleverd.
Methoden om systemctl-logboeken te bekijken
Er zijn twee benaderingen voor het bekijken van systemd-logboeken op Linux:
De systemctl geeft de meest recente servicespecifieke logs, terwijl journalctl diepgaande systeembrede logs geeft van alle services en de specifieke service.
Ik zal beide hulpprogramma's verkennen om systemd-logboeken te bekijken. Maar laten we eerst het belangrijkste verschil begrijpen tussen systemctl- en journalctl-opdrachten.
Wat is systemctl
Systemctl is een opdrachtregelhulpprogramma dat systemd-services beheert, zoals het in- of uitschakelen van de service en het bekijken van de status. De systemctl-status opdracht drukt ook een paar logregels van de service af onderaan de uitvoer, en dit logbestand is na de recente opstart. Deze logregels van de service zijn echter alleen van na de huidige opstartperiode.
Wat is journalctl
Journalctl is een opdrachtregelhulpprogramma dat wordt gebruikt om de door systemd verzamelde logboeken af te drukken. Vergeleken met systemctl biedt het gedetailleerde uitvoer met filteropties. Dit hulpprogramma is ontworpen om:
- Logboeken lezen (oudste log komt eerst)
- Logboeken bewaken
- Filter logboeken op basis van tijd, service of gebruiker
Het systemd verzamelt logbestanden van de kernel, services en daemons en slaat deze op een gecentraliseerde plaats op.
Hoe u het logboek van een service kunt bekijken met systemctl
De algemene syntaxis om het logboek van een service te vinden met behulp van de systeemctl hulpprogramma wordt hieronder vermeld.
systemctl-status [ servicenaam ]Als u bijvoorbeeld de loggegevens van de smbd.service gebruik de onderstaande opdracht.
systemctl-status smbd.service
Om uitvoer zonder paginering te krijgen, voegt u de –geen pager optie in de opdracht.
systemctl-status smbd.service --geen pager
Hoe u het logboek van een service kunt bekijken met journalctl
Om het logboek van een specifieke service van systemd te bekijken, gebruikt u journaalctl met de -in commando en service- of eenheidsnaam.
journaalctl -in [ servicenaam ]In het bovenstaande commando wordt de -in vlag, afkorting van -eenheid wordt gebruikt om het te filteren journaalctl uitgevoerd met een eenheidsnaam.
Als u bijvoorbeeld het logboek van de smbd daemon, ik zal de [eenheidsnaam] met smbd.service .
journaalctl -in smbd.service
In de uitvoer is te zien dat de oudste vermelding eerst komt en vervolgens logt nadat elke keer opstarten wordt vermeld.
Gebruik eerst het nieuwste item -Het is kort voor –pager-einde.
journaalctl -in smbd.service -Het is
Als u de paginering uit de uitvoer wilt weglaten, voegt u eenvoudigweg de –geen pager in de bovengenoemde opdrachten.
Om de logboekgegevens continu af te drukken in realtime gebruik -F kort voor -volgen .
journaalctl -in smbd.service -FDe filtering kan verder worden uitgebreid door de vlag -b te gebruiken, een afkorting voor -laars , waarmee de logboeken worden afgedrukt op basis van de huidige opstartprocedure.
journaalctl -in [ eenheidsnaam ] -BLaten we logs afdrukken van de smbd.service van de recente opstart.
journaalctl -in smbd.service -B
De bovenstaande uitvoer lijkt op de uitvoer die we krijgen met behulp van de systemctl-status commando.
Om een gedetailleerd logoverzicht te krijgen, gebruikt u de -X kort voor -catalogus keuze.
journaalctl -in smbd.service -XHierdoor wordt een korte beschrijving van het logboek toegevoegd.
Om logboeken op basis van tijd af te drukken met behulp van journalctl zijn er twee opties: -S kort voor -sinds En -IN kort voor -tot .
journaalctl -in [ eenheidsnaam ] -S '[jaar-maand-dag] [uren:minuten:seconden]'Om bijvoorbeeld de logs van unit smbd van 2024:01:30 12:05:00 .
journaalctl -in smbd.service -S '2024:01:30 12:05:00'
Conclusie
Om de systemd-logboeken van een service te bekijken, zijn er twee hoofdhulpprogramma's: journalctl en systemctl. De journalctl is speciaal ontworpen voor het bekijken van de logs van systemd. De systemctl heeft echter ook een mogelijkheid om het log van de dienst af te drukken. Om het logboek van een servicegebruik af te drukken, journalctl-u [eenheidsnaam] en systeemctl [eenheidsnaam].