I denne veiledningen vil jeg dekke hvordan du kan se systemd-logger på Linux ved å bruke forskjellige kommandolinjeverktøy.
Merk: Kommandoene nevnt i denne veiledningen utføres på Ubuntu. De vil fungere uten feil på alle Linux-distribusjoner som følger med systemd init-systemet.
Metoder for å se systemctl-logger
Det er to tilnærminger til visning av systemlogger på Linux:
Systemctl gir de nyeste tjenestespesifikke loggene, mens journalctl gir dybdegående systemomfattende logger over alle tjenester og den spesifikke tjenesten.
Jeg vil utforske begge verktøyene for å se systemd-logger. Men først, la oss forstå nøkkelforskjellen mellom systemctl- og journalctl-kommandoer.
Hva er systemctl
Systemctl er et kommandolinjeverktøy som administrerer systemtjenester, for eksempel aktivering eller deaktivering av tjenesten og visning av status. De systemctl-status kommandoen skriver også ut noen få logglinjer for tjenesten nederst i utdataene, og denne loggen er etter den nylige oppstarten. Disse logglinjene til tjenesten er imidlertid kun fra etter gjeldende oppstart.
Hva er journalctl
Journalctl er et kommandolinjeverktøy som brukes til å skrive ut loggene som er samlet inn av systemd. Sammenlignet med systemctl, gir den detaljert utdata med filtreringsalternativer. Dette verktøyet er laget for å:
- Les logger (eldste logg kommer først)
- Overvåke logger
- Filtrer logger basert på tid, tjeneste eller bruker
Systemd samler logger fra kjerne, tjenester og demoner og lagrer dem på et sentralisert sted.
Hvordan se loggen for en tjeneste ved hjelp av systemctl
Den generelle syntaksen for å finne loggen til en tjeneste ved å bruke systemctl verktøyet er nevnt nedenfor.
systemctl-status [ tjenestenavn ]For eksempel for å se logginformasjonen til smbd.service bruk kommandoen nedenfor.
systemctl status smbd.service
For å få utdata uten paginering, legg til –ingen personsøker alternativet i kommandoen.
systemctl status smbd.service --ingen personsøker
Hvordan se loggen for en tjeneste ved å bruke journalctl
For å se loggen for en spesifikk tjeneste til systemd, bruk journalctl med -i kommando og tjeneste eller enhetsnavn.
journalctl -i [ tjenestenavn ]I kommandoen ovenfor er -i flagg, forkortelse for -enhet brukes til å filtrere journalctl utdata av et enhetsnavn.
For eksempel for å skrive ut loggen til smbd daemon, vil jeg erstatte [enhetsnavn] med smbd.service .
journalctl -i smbd.service
I utgangen kan det sees at den eldste oppføringen kommer først og deretter logger etter hver oppstart er oppført.
For å få den siste oppføringen første gang -Det er kort for –personsøker-slutt.
journalctl -i smbd.service -Det er
Hvis du vil utelate pagineringen fra utdataene, legger du bare til –ingen personsøker i de ovennevnte kommandoene.
For kontinuerlig å skrive ut loggoppføringene i sanntidsbruk -f kort for -Følg .
journalctl -i smbd.service -fFiltreringen kan utvides ytterligere ved å bruke -b-flagget forkortelse for -støvel , som skriver ut loggene basert på gjeldende oppstart.
journalctl -i [ enhetsnavn ] -bLa oss skrive ut logger av smbd.service fra den nylige oppstarten.
journalctl -i smbd.service -b
Ovennevnte utgang ligner utgangen vi får ved å bruke systemctl-status kommando.
For å få en detaljert loggoversikt, bruk -x kort for -katalog alternativ.
journalctl -i smbd.service -xDette vil legge til en kort beskrivelse av loggen.
Nå, for å skrive ut logger basert på tid ved å bruke journalctl, er det to alternativer, -S kort for -siden og -I kort for -før .
journalctl -i [ enhetsnavn ] -S '[år-måned-dag] [timer:minutter:sekunder]'For eksempel for å se loggene til enheten smbd fra 2024:01:30 12:05:00 .
journalctl -i smbd.service -S '2024:01:30 12:05:00'
Konklusjon
For å se systemloggene til en tjeneste, er det to hovedverktøy, journalctl og systemctl. Journalctl er spesielt designet for å vise loggene til systemd. Systemctl har imidlertid også en mulighet til å skrive ut loggen for tjenesten. For å skrive ut loggen for en tjenestebruk, journalctl -u [enhetsnavn] og systemctl [enhetsnavn].