Tutoriali i Komandës Journalctl: Udhëzues i plotë dhe praktik

Përditësimi i fundit: 16/10/2025
Author: Isaac
  • Journalctl centralizon dhe filtron regjistrat e sistemit sipas kohës, njësisë, përparësisë dhe më shumë.
  • Lejon rezultate fleksibile (JSON, ISO 8601, të hollësishme) dhe gjurmim në kohë reale.
  • Menaxhimi i hapësirës me vakum dhe kufij në journald.conf për kontroll të detajuar.

Udhëzuesi i Journalctl dhe systemd

kur punoni me Linux moderne, systemd dhe ditari i tij i centralizuar Ato janë thelbësore për të kuptuar se çfarë po ndodh në makinë. Dhe këtu hyn në lojë journalctl, thika zvicerane e ushtrisë për të pyetur, filtruar dhe eksportuar ato regjistra me një shpejtësi dhe precizion që nuk do ta merrni me skedarë të shpërndarë.

Ky tutorial bashkon, hap pas hapi, Të gjitha veçoritë thelbësore dhe të përparuara të journalctl: që kur pashë të fundit boot, filtroni sipas shërbimit, përdoruesit ose përparësisë, për të menaxhuar hapësirën e diskut, për të ndryshuar formatet e daljes ose për të eksportuar në JSON. Përveç kësaj, do të shihni se si ta aktivizoni ruajtje këmbëngulës, rendit nisjet e mëparshme dhe lëviz nëpër dritaret kohore me fleksibilitet absolut.

Journalctl, systemd-journald, dhe pse ka rëndësi

Në sistemet me systemd, mesazhet nga kerneli, shërbimet, initrd dhe proceset e përdoruesit mblidhen në një ditar binar të menaxhuar nga systemd-journalNdryshe nga /var/log/syslog dhe të ngjashme, ky format binar lejon Kërkime të shpejta, filtrim meta të dhënash dhe rezultate të gjithanshme (p.sh., JSON ose stili syslog), të gjitha nga një pikë e vetme aksesi: journalctl.

uefi bios
Artikuj të ngjashëm:
Si të qaseni dhe përditësoni cilësimet e firmware-it (BIOS/UEFI) nga Linux duke përdorur systemctl dhe systemd

Para së gjithash: kontrolloni zonën kohore

Meqenëse të dhënat shfaqen në kohën lokale si parazgjedhje, këshillohet që së pari të validoni zonën kohore me timedatectlMund të listoni zonat e disponueshme me timedatectl list-timezones dhe ndryshojeni atë me sudo timedatectl set-timezone ZONAPër të kontrolluar statusin, SHBA timedatectl status dhe konfirmon që ora lokale është e saktë.

Nëse jeni të interesuar të punoni në UTC, journalctl shton modifikuesin –utc për të shfaqur vulat kohore universale kur keni nevojë për to. Në këtë mënyrë nuk ka probleme kur krahasoni me regjistrat. servera të tjerë ose me të dhëna monitorimi.

Fillimi: shikimi, navigimi dhe faqosja

Pa argumente, journalctl shfaq të gjithë ditarin nga hyrja më e vjetër tek më e reja duke përdorur një faqosje (zakonisht më pakMund të lëvizni me shigjeta dhe, nëse vija është më e gjatë se ekrani, shikoni pjesën tjetër me shigjetën djathtasPër të ndryshuar rendin (të fundit të parën), shtoni -r.

Nëse dëshironi që vija të shkurtohet në vend që të zhvendoset anash, përdorni --no-full; dhe për të parë absolutisht gjithçka (duke përfshirë karaktere që nuk shtypen), shton -aKur doni të përpunoni rezultatin me mjete të tjera, --no-pager çaktivizon pagerin dhe e lë daljen brenda stdout.

Ka shkurtesa më praktike për jetën e përditshme: -e Shkoni direkt në fund të ditarit për të parë ngjarjet më të fundit dhe -x përpiqem shtoni shpjegime e dobishme për disa mesazhe (kur është e disponueshme) për të shpejtuar diagnozën.

Filtro sipas nisjeve të sistemit

El conmutador -b Ju tregon vetëm hyrjet e nisja aktualeDo të shihni rreshtat “– Reboot –” që kufizojnë sesionet nëse kaloni nëpër më shumë se një nisje. Për të shkuar në një nisje të mëparshme, përdorni journalctl -b -1; për pesë fillime më parë, -b -5Kjo është ideale kur një problem ndodh vetëm pas një rinisjeje ose në sekuenca specifike të nisjes.

  Mësoni se si të zbuloni shumëllojshmërinë serike të hard drive-it në Residence Home windows 10

Nëse doni listën e personazheve të rinj që gazeta i njeh, journalctl --list-boots do të shfaqë një për rresht me: zhvendosje relative (0, -1, -2, …), ID_BOOT dhe diapazoni kohor. Mund të kërkoni me anë të zhvendosjes ose ID-së absolute: journalctl -b 0 o journalctl -b BOOT_ID.

E rëndësishme: Që nisjet e mëparshme të vazhdojnë gjatë gjithë rinisjeve, aktivizoni ruajtjen e përhershme duke krijuar /var/log/journal (sudo mkdir -p /var/log/journal) ose redaktim /etc/systemd/journald.conf me Storage=persistentNë këtë mënyrë, regjistrat nuk do të humbasin në çdo nisje.

Dritare kohore të fuqishme

Për të kufizuar kohën, përdorni --since y --until me formatin VVV-MM-DD HH: MM: SSNëse e hiqni orën, supozohet mesnata; nëse e hiqni datën, supozohet dita aktuale. Për shembull: journalctl --since "2024-12-01 09:00" --until "2024-12-01 12:00".

Mund të përdorni edhe shprehje relative: dje, sot, nesër, tani, ose fraza të tilla si "1 hour ago"Një klasik: journalctl --since 09:00 --until "1 hour ago" për të parë nga ora e parë deri në orën para asaj aktuale.

Filtro sipas shërbimit, proceseve, përdoruesve dhe më shumë

Filtri më i zakonshëm është për njësi të sistemit: -u. Për shembull, journalctl -u nginx.service Shfaq gjithçka nga shërbimi nginx. Mund të kombinoni njësi të shumta për të parë se si bashkëveprojnë ato. duke u shpërndarë kronologjikisht hyrje nga, për shembull, Nginx dhe PHP-FPM: journalctl -u nginx.service -u php-fpm.service --since today.

Për shërbimet që janë në funksion ose jo, mund të listoni njësitë me systemctl list-units -t service --all dhe zbuloni emra të saktë (e dobishme në sisteme me dhjetëra shërbime). Në këtë mënyrë shmangni gabimet drejtshkrimore dhe filtroni vetëm atë që nevojitet.

Nëse e dini PID-in, filtroni sipas _PID: journalctl _PID=8088Për përdoruesit dhe grupet, përdorni _UID y _GIDPër shembull, id -u www-data do të kthejë UID-in që mund ta përdorni më pas journalctl _UID=33 --since today para shikoni se çfarë është gjeneruar nga ai përdorues.

Ditari indekson shumë fusha automatikisht: ekzekutueshme, komandë, transport, strukturë, etj. Me journalctl -F CAMPO mund të listoni vlera të ndryshme nga një fushë dhe kështu të ndërtoni filtra më të saktë. Konsultohuni man systemd.journal-fields për të parë katalogun e plotë të fushave të filtrueshme.

Disa filtra shumë të dobishëm: sipas rrugës ekzekutuese (journalctl /usr/bin/bash), nga stili i sistemit të regjistrimit (SYSLOG_FACILITY=3 korrespondon me daemon), sipas ID-së së nisjes (_BOOT_ID=...) ose me transport (_TRANSPORT=kernel|stdout|journal|syslog|driver|audit) sipas Origjina të mesazhit.

Madje mund të filtrosh sipas pajisjes në disa raste, për shembull për Zbuloni ngjarjet USB në Linux ose me journalctl /dev/sda, i dobishëm për gjetjen e mesazheve që lidhen me ruajtje kur ka dyshime për I/O ose sektorë të këqij.

Mesazhet e bërthamës dhe ekuivalentët e dmesg

Për të parë vetëm mesazhet e kernelit që keni -k o --dmesgSi parazgjedhje, ato janë të kufizuara në nisjen aktuale, por mund t'i kombinoni me -b për çizme të tjera: journalctl -k -b -5 do të tregojë kernelin nga pesë nisje më parë.

Ky filtër është shumë i dobishëm për të zbuluar konfliktet e Shoferët, problemet e hardware o kernel panik ose ngjarje të nivelit të ulët që nuk shfaqen në shërbimet e përdoruesit. Është alternativa moderne ndaj komandës së vjetër dmesg me kontekst kohor dhe meta të dhëna.

  Zgjidhja e problemeve me llogaritë e përdoruesve të dëmtuara në Windows

Prioritetet e regjistrit: 0 deri në 7 ose me emër

Journalctl njeh nivelet standarde të përparësisë: 0 emergjencë, 1 alarm, 2 kritik, 3 gabim, 4 paralajmërim, 5 njoftim, 6 informacion, 7 debug. Mund të filtroni me -p duke përdorur emrin ose numrin, dhe si parazgjedhje përfshin niveli i zgjedhur dhe të gjitha ato më të rëndat.

shembuj: journalctl -p err -b (gabim dhe më i larti në nisjen aktuale) ose journalctl -p 3Nëse doni të ngushtoni një diapazoni i saktë, përdorni formatin desde..hasta: për shembull, vetëm paralajmërim, gabim dhe kritik me journalctl -p warning..crit ose në numra journalctl -p 4..2.

Ndiqni në kohë reale, linjat dhe kërkimet më të fundit

Për të “dëgjuar” gazetën drejtpërdrejt, -f funksionon njësoj si bisht -fPerfekt kur rinis një shërbim dhe dëshiron të shohësh menjëherë se çfarë nxjerr. Nëse preferon një mostër, -n tregoni N rreshtat e fundit (parazgjedhja 10): journalctl -n, journalctl -n 20 o journalctl -n12 në formën e saj kompakte.

Përveç tubit gjithmonë të dobishëm për grep, journalctl integron --grep për modelet regex direkt në pyetje. Për shembull, për të gjetur hyrjet që përmbajnë GnuPG: journalctl --grep GnuPGI kombinuar me kohën, drejtimin ose përparësinë, kërkimi është kirurgjikale.

Formatet e daljes dhe eksportimit

me -o ju ndryshoni formatin e daljes. Ju keni short (stili i regjistrit të sistemit si parazgjedhje), short-iso (Vula kohore ISO 8601), short-monotonic (shenjë monotonike), short-precise (mikrosekonda) dhe i folur (tregon të gjitha fushat, përfshirë ato të brendshme).

Për integrimet, json y json-pretty janë ideale (kjo e fundit është më e lexueshme nga njerëzit), dhe json-sse kapsulon rezultatin për ngjarje të dërguara nga serveriFormati cat shtyp vetëm fushën MESSAGE, i dobishëm për lexime të pastra, dhe export Përdoret për të transferuar ose të dhënat rezervë në binare.

Nëse do të përpunoni me mjete të tjera, mos harroni të kombinoni --no-pager dhe ridrejtime: journalctl -b -u nginx -o json --no-pager > nginx.json një thjeshtë journalctl > mensajes.log kur keni nevojë për një shkarkim të shpejtë.

Lejet dhe siguria

Sipas dizajnit, çdo përdorues mund të kërkojë të dhënat e tyrePër të parë sistemin, duhet të jesh rrënjë ose i përkasin grupeve të tilla si adm, wheel o systemd-journalKjo parandalon rrjedhjet e informacionit të ndjeshëm dhe respekton parimin e privilegj minimal.

Kontrolli i përdorimit të diskut

Për të matur hapësirën që zë gazeta: journalctl --disk-usageDo të shihni një përmbledhje të MiB/GiB të konsumuar nga skedarët e ditarit në ruajtje të përhershme dhe të paqëndrueshme, diçka kyçe për shmang trembjet në ndarje të vogla.

Nëse keni nevojë të zvogëloni ose lironi hapësirë ​​në linuxJu keni tre strategji zbrazjeje: sipas madhësisë, sipas kohës dhe sipas numrit të skedarëve. Shembuj: sudo journalctl --vacuum-size=1G, sudo journalctl --vacuum-time=2weeks o sudo journalctl --vacuum-files=10 për të ruajtur sa më shumë të jetë e mundur 10 skedarë të arkivuar.

Për të vendosur kufij të përhershëm, modifikoni /etc/systemd/journald.confÇelësat më të dobishëm: SystemMaxUse= y RuntimeMaxUse= (limiti total për të përhershme dhe të paqëndrueshme), SystemKeepFree= y RuntimeKeepFree= (hapësirë ​​për t'u rezervuar në FS), SystemMaxFileSize= y RuntimeMaxFileSize= (madhësia individuale e skedarit) dhe SystemMaxFiles= y RuntimeMaxFiles= (numri maksimal i skedarëve të arkivuar). Madhësitë pranojnë prapashtesat K, M, G, T, P, E.

Mbani mend se kufijtë e madhësisë së skedarit udhëzojnë rrotullimin për të arritur vlerën e shënuar dhe se, si parazgjedhje, nëse nuk konfiguroni asgjë, ditari zakonisht vetëkufizim në rreth 10% të sistemit të skedarëve ku ndodhet. Pas ndryshimit të konfigurimit, rinisni shërbimin me sudo systemctl restart systemd-journald.

Receta dhe truke të shpejta

Për të parë vetëm gabimet më serioze nga nisja e fundit: journalctl -p err -bNëse dëshironi saktësisht paralajmërim, gabim dhe kritik: journalctl -p warning..crit o journalctl -p 4..2 për ta shprehur atë me numra.

  Si të aktivizoni përgjigjet automatike në Outlook | Tutorial konfigurimi

Listoni të gjitha vlerat në një fushë dhe përsosni filtrat: journalctl -F _GID (o -F _UID, -F _EXE, etj.). Është perfekt për të zbuluar ID-të e vërteta përpara se të ndërtoni pyetjen tuaj përfundimtare.

Ndajeni sipas ekzekutuesit ose komandës: journalctl _EXE=/usr/bin/sudo o journalctl _COMM=sudoNëse duhet të izoloni atë që vjen nga dalja e shërbimeve standarde, filtroni sipas _TRANSPORT=stdout.

Filtro sipas hostit në mjediset e emrave të përbashkët të hostit: journalctl _HOSTNAME=debianDhe për të kërkuar bileta nga një përdorues specifik që e di UID-in e tij: journalctl _UID=0 (rrënjë) ose numri që korrespondon me rastin tuaj.

A duhet të shihni vetëm mesazhe në nivelin "përdorues" nga regjistri i sistemit të objektit? journalctl SYSLOG_FACILITY=1 (dhe mos harroni se 3 korrespondon me dreqKëto filtra ju ndihmojnë të imitoni pamjet klasike të regjistrave të sistemit kur migroni në systemd.

Duke punuar në UTC, ISO 8601 dhe precizion mikrosekondash

Nëse keni sisteme në zona të shumta ose krahasoni me metrika, shtoni --utc për të standardizuar kohën. Për formate të qarta dhe të rregullta, -o short-iso Është një zgjedhje e shkëlqyer; nëse jeni të interesuar në renditjen monotonike të orës (për debugging të sekuencave relative), -o short-monotonic është miku juaj.

Kur një incident kërkon detaje maksimale, -o short-precise shton mikrosekonda në vulën kohore. Është një perlë kur bëhet korrelacion me gjurmë, profile ose kapjet e rrjetit.

Praktika të mira për përdorim të përditshëm

Aktivizo qëndrueshmërinë nëse të intereson historia: krijo /var/log/journal ose konfiguro Storage=persistent dhe rinisni journald. Nëse punoni me shumë rrotullime, përcaktoni SystemMaxUse y SystemKeepFree në mënyrë që të mos e mbytë kurrë ndarjen.

Për të debuguar shërbimet, kombinoni: -u servicio + -f + filtra të prioritet dhe koha. Shto -x kur dyshoni për mesazhe të fshehta; ndonjëherë kjo ofron të dhëna shtesë që ju shpëtojnë minuta të vlefshme.

Në tubacione dhe eksporte, përdorni --no-pager dhe formate të tilla si json o export në varësi të mjetit të synuar. Mos harroni sigurinë: kufizoni aksesin në grupet e duhura dhe kontrolloni lejet nëse ndani rezultate që mund të përmbajnë të dhëna të ndjeshme.

Zotërimi i journalctl ndryshon mënyrën se si e kuptoni sistemin: me filtra sipas njësisë, PID, përdoruesit, përparësisë ose kohës, me rezultate të pasura dhe kontroll të përdorimit të diskut, Gjithmonë do ta kesh historinë e saktë në dorë të asaj që po ndodh. Është një mjet i fortë për monitorimin, auditimin dhe debugging-un në mënyrë inteligjente, pa u humbur në mijëra rreshta.