Tutorial sa Utos ng Journalctl: Kumpleto at Praktikal na Gabay

Huling pag-update: 16/10/2025
May-akda: Isaac
  • Ang Journalctl ay nagsasentro at nagsasala ng mga systemd log ayon sa oras, yunit, priyoridad, at higit pa.
  • Nagbibigay-daan sa mga flexible na output (JSON, ISO 8601, verbose) at real-time na pagsubaybay.
  • Pamamahala ng espasyo na may vacuum at mga limitasyon sa journald.conf para sa pinong kontrol.

Journalctl at systemd na gabay

Kapag gumagamit ng modernong Linux , ang systemd at ang sentralisadong journal nito ay mahalaga para maunawaan kung ano ang nangyayari sa makina. At diyan pumapasok ang journalctl—ang Swiss Army knife para sa pag-query, pag-filter, at pag-export ng mga log na iyon nang may bilis at katumpakan na hindi mo makakamit gamit ang kalat-kalat at hindi organisadong mga file.

Pinagsasama-sama ng tutorial na ito, hakbang-hakbang, ang lahat ng mahahalaga at advanced na tampok ng journalctl : mula sa pagtingin sa huling startup , pag-filter ayon sa serbisyo, user, o prayoridad, hanggang sa pamamahala ng espasyo sa disk, pagpapalit ng mga format ng output, at pag-export sa JSON. Makikita mo rin kung paano paganahin ang persistent storage , ililista ang mga nakaraang startup, at mag-navigate sa mga time window nang may kumpletong flexibility.

Journalctl, systemd-journald, at kung bakit ito mahalaga

Sa mga sistemang gumagamit ng systemd, ang mga mensahe mula sa kernel, services, initrd, at mga proseso ng user ay kinokolekta sa isang binary journal na pinamamahalaan ng systemd-journald . Hindi tulad ng /var/log/syslog at mga katulad na direktoryo, ang binary format na ito ay nagbibigay-daan para sa mabilis na paghahanap, pag-filter ng metadata, at maraming nalalaman na output (hal., JSON o syslog-style), lahat mula sa iisang access point: journalctl.

uefi bios
Kaugnay na artikulo:
Paano i-access at i-update ang mga setting ng firmware (BIOS/UEFI) mula sa Linux gamit ang systemctl at systemd

Una sa lahat: suriin ang time zone

Dahil ang mga tala ay ipinapakita sa lokal na oras bilang default, ipinapayong i-validate muna ang time zone gamit ang timedatectl. Maaari mong ilista ang mga available na zone na may timedatectl list-timezones at palitan ito ng sudo timedatectl set-timezone ZONA. Upang suriin ang katayuan, Estados Unidos timedatectl status at kinukumpirma na ang lokal na orasan ay tama.

Kung interesado kang magtrabaho sa UTC, idinaragdag ng journalctl ang `-utc` modifier upang ipakita ang mga universal timestamp kung kinakailangan. Naiiwasan nito ang mga conflict kapag naghahambing ng mga log mula sa ibang mga server o nagmo-monitor ng data.

Pagsisimula: pagtingin, pag-navigate, at paging

Nang walang mga argumento, journalctl ipinapakita ang buong journal mula sa pinakalumang entry hanggang sa pinakabago gamit ang pagination (karaniwang kulang). Maaari kang mag-scroll gamit ang mga arrow at, kung mas mahaba ang linya kaysa sa screen, tingnan ang natitira gamit ang kanang arrow. Upang baligtarin ang pagkakasunud-sunod (kamakailan muna), idagdag -r.

Kung gusto mong putulin ang linya sa halip na ilipat patagilid, gamitin --no-full; at upang makita ang lahat ng bagay (kabilang ang hindi mai-print na character), idinagdag -a. Kapag gusto mong iproseso ang output gamit ang iba pang mga tool, --no-pager hindi pinapagana ang pager at iniiwan ang output stdout.

Mayroong mas praktikal na mga shortcut para sa pang-araw-araw na buhay: -e dumiretso sa dulo ng journal para makita ang pinakabagong mga pangyayari at -x subukan magdagdag ng mga paliwanag kapaki-pakinabang sa ilang mga mensahe (kapag magagamit) upang mapabilis ang diagnosis.

I-filter ayon sa system boots

El conmutador -b Ipinapakita lamang nito sa iyo ang mga entry ng kasalukuyang boot. Makakakita ka ng “– Reboot –” na mga linyang nagde-delimimit ng mga session kung magna-navigate ka sa higit sa isang boot. Upang pumunta sa isang nakaraang boot, gamitin journalctl -b -1; para sa limang simula na nakalipas, -b -5. Ito ay perpekto kapag ang isang problema ay nangyayari lamang pagkatapos ng pag-reboot o sa mga partikular na pagkakasunud-sunod ng boot.

  Alamin kung paano Pangalanan ang Isang Tao na Naka-block sa Dami Mo

Kung gusto mo ang listahan ng mga pagsisimula na alam ng pahayagan, journalctl --list-boots ay magpapakita ng isa sa bawat linya na may: relative offset (0, -1, -2, …), BOOT_ID at saklaw ng oras. Maaari kang mag-query sa pamamagitan ng offset o absolute ID: journalctl -b 0 o journalctl -b BOOT_ID.

Mahalaga: Upang magpatuloy ang mga nakaraang bota sa mga pag-reboot, paganahin ang patuloy na storage sa pamamagitan ng paggawa /var/log/journal (sudo mkdir -p /var/log/journal) o pag-edit /etc/systemd/journald.conf sa Storage=persistent. Sa ganitong paraan, hindi mawawala ang mga log sa bawat boot.

Napakahusay na mga window ng oras

Upang limitahan ayon sa oras, gamitin --since y --until kasama ang format YYYY-MM-DD HH: MM: SSKung aalisin mo ang oras, ang hatinggabi ay ipinapalagay; kung aalisin mo ang petsa, ang kasalukuyang araw ay ipinapalagay. Halimbawa: journalctl --since "2024-12-01 09:00" --until "2024-12-01 12:00".

Maaari ka ring gumamit ng mga kaugnay na expression: kahapon, ngayon, bukas, ngayon, o mga parirala tulad ng "1 hour ago". Isang klasiko: journalctl --since 09:00 --until "1 hour ago" upang tingnan mula sa unang oras hanggang sa oras bago ang kasalukuyan.

I-filter ayon sa serbisyo, proseso, user, at higit pa

Ang pinakakaraniwang filter ay bawat systemd unit: -u. Halimbawa, journalctl -u nginx.service Ipinapakita ang lahat mula sa serbisyo ng nginx. Maaari mong pagsamahin ang maraming unit para makita kung paano sila nakikipag-ugnayan. nagsasalitan ayon sa pagkakasunod-sunod mga entry mula sa, halimbawa, Nginx at PHP-FPM: journalctl -u nginx.service -u php-fpm.service --since today.

Para sa pagpapatakbo o hindi pagpapatakbo ng mga serbisyo, maaari kang maglista ng mga unit na may systemctl list-units -t service --all at tuklasin eksaktong mga pangalan (kapaki-pakinabang sa mga system na may dose-dosenang mga serbisyo). Sa ganitong paraan maiiwasan mo ang mga typo at i-filter kung ano ang kailangan.

Kung alam mo ang PID, i-filter ayon sa _PID: journalctl _PID=8088. Para sa mga user at grupo, gamitin _UID y _GID: Halimbawa, id -u www-data ibabalik ang UID na maaari mong gamitin journalctl _UID=33 --since today para tingnan kung ano ang nabuo ng user na iyon.

Awtomatikong ini-index ng journal ang maraming field: executable, command, transport, facility, atbp. Gamit journalctl -F CAMPO maaari mong ilista ang iba't ibang halaga mula sa isang field at sa gayon ay bumuo ng mas tumpak na mga filter. Kumonsulta man systemd.journal-fields upang makita ang kumpletong catalog ng mga na-filter na field.

Ilang napakadaling-gamiting mga filter: sa pamamagitan ng executable path (journalctl /usr/bin/bash), sa pamamagitan ng pasilidad ng estilo ng syslog (SYSLOG_FACILITY=3 tumutugma sa daemon), sa pamamagitan ng boot ID (_BOOT_ID=...) o sa pamamagitan ng transportasyon (_TRANSPORT=kernel|stdout|journal|syslog|driver|audit) ayon sa Ang pinagmulan ng mensahe.

Maaari ka ring mag-filter ayon sa device sa ilang sitwasyon, halimbawa para sa I-detect ang mga USB na kaganapan sa Linux may journalctl /dev/sda, kapaki-pakinabang para sa paghahanap ng mga mensaheng nauugnay sa imbakan kapag may mga hinala ng I/O o masamang sektor.

Mga mensahe ng kernel at katumbas ng dmesg

Upang makita lamang ang mga mensahe ng kernel na mayroon ka -k o --dmesg. Bilang default, limitado ang mga ito sa kasalukuyang boot, ngunit maaari mong pagsamahin ang mga ito -b para sa iba pang bota: journalctl -k -b -5 ipapakita ang kernel mula limang bota ang nakalipas.

Ang filter na ito ay lubhang kapaki-pakinabang upang matukoy mga salungatan ng driver, mga problema ng hardware o kernel panic o mababang antas na mga kaganapan na hindi lumalabas sa mga serbisyo ng user. Ito ang modernong alternatibo sa lumang utos dmesg na may temporal na konteksto at metadata.

  Mga Paraan sa Pag-aayos ng Unti-unti o Maling Home windows Laptop Clock

Mga priyoridad sa log: 0 hanggang 7 o ayon sa pangalan

Kinikilala ng Journalctl ang mga karaniwang antas ng priyoridad: 0 emergency, 1 alerto, 2 kritikal, 3 error, 4 na babala, 5 paunawa, 6 na impormasyon, 7 debug. Maaari kang mag-filter gamit ang -p gamit ang pangalan o numero, at bilang default ay kasama ang ang napiling antas at lahat ng pinakamalubha.

Ejemplos: journalctl -p err -b (error at pinakamataas sa kasalukuyang boot) o journalctl -p 3. Kung gusto mong magpakipot a eksaktong saklaw, gamitin ang format desde..hasta: halimbawa, babala lamang, pagkakamali at kritikal na may journalctl -p warning..crit o sa mga numero journalctl -p 4..2.

Subaybayan sa real time, pinakabagong mga linya at paghahanap

Upang "makinig" sa live na pahayagan, -f gumagana ito katulad ng buntot -f. Perpekto kapag nag-restart ka ng isang serbisyo at gustong makita kaagad kung ano ang ibinubuhos nito. Kung mas gusto mo ang isang sampling, -n ipakita ang huling N linya (default 10): journalctl -n, journalctl -n 20 o journalctl -n12 sa compact form nito.

Bilang karagdagan sa palaging kapaki-pakinabang na pipe sa grep, nagsasama ang journalctl --grep para sa mga pattern ng regex nang direkta sa query. Halimbawa, upang mahanap ang mga entry na naglalaman ng GnuPG: journalctl --grep GnuPG. Kasama ng oras, pagmamaneho o priyoridad, ang paghahanap ay pag-opera.

Mga format ng output at pag-export

may -o baguhin mo ang format ng output. meron ka short (estilo ng syslog bilang default), short-iso (ISO 8601 timestamp), short-monotonic (monotonic mark), short-precise (microseconds) at pandiwang (ipinapakita ang lahat ng mga patlang, kabilang ang mga panloob).

Para sa mga pagsasama, json y json-pretty ay perpekto (ang huli ay mas nababasa ng tao), at json-sse encapsulates ang output para sa mga kaganapang ipinadala ng server. Ang format cat i-print lamang ang field MESSAGE, kapaki-pakinabang para sa malinis na pagbabasa, at export Ito ay ginagamit upang ilipat o mga backup na tala sa binary.

Kung magpoproseso ka sa iba pang mga tool, tandaan na pagsamahin --no-pager at mga pag-redirect: journalctl -b -u nginx -o json --no-pager > nginx.json o simpleng journalctl > mensajes.log kapag kailangan mo ng mabilisang pagtatapon.

Mga permit at seguridad

Sa pamamagitan ng disenyo, maaaring mag-query ang bawat user kanilang sariling mga talaan. Upang makita ang sistema, kailangan mong maging ugat o nabibilang sa mga pangkat tulad ng adm, wheel o systemd-journalPinipigilan nito ang paglabas ng sensitibong impormasyon at iginagalang ang prinsipyo ng pinakamababang pribilehiyo.

Kontrol sa paggamit ng disk

Upang sukatin kung gaano karaming espasyo ang ginagamit ng pahayagan: journalctl --disk-usage. Makakakita ka ng buod ng MiB/GiB na natupok ng mga file ng journal sa paulit-ulit at pabagu-bagong imbakan, isang bagay na susi sa iwasan ang takot sa maliliit na partisyon.

Kung kailangan mong bawasan o magbakante ng espasyo sa LinuxMayroon kang tatlong diskarte sa pag-alis ng laman: ayon sa laki, sa oras, at sa bilang ng mga file. Mga halimbawa: sudo journalctl --vacuum-size=1G, sudo journalctl --vacuum-time=2weeks o sudo journalctl --vacuum-files=10 upang mapanatili hangga't maaari 10 naka-archive na mga file.

Para magtakda ng mga permanenteng limitasyon, i-edit /etc/systemd/journald.confAng pinakakapaki-pakinabang na mga susi: SystemMaxUse= y RuntimeMaxUse= (kabuuang limitasyon sa paulit-ulit at pabagu-bago ng isip), SystemKeepFree= y RuntimeKeepFree= (puwang na ipapareserba sa FS), SystemMaxFileSize= y RuntimeMaxFileSize= (indibidwal na laki ng file) at SystemMaxFiles= y RuntimeMaxFiles= (maximum na bilang ng mga naka-archive na file). Ang mga sukat ay tumatanggap ng mga suffix na K, M, G, T, P, E.

Tandaan na ang mga limitasyon sa laki ng file ay gumagabay sa pag-ikot upang maabot ang minarkahang halaga at na, bilang default, kung hindi ka nagko-configure ng anuman, ang journal ay karaniwang paglilimita sa sarili sa halos 10% ng file system kung saan ito naninirahan. Pagkatapos baguhin ang configuration, i-restart ang serbisyo gamit ang sudo systemctl restart systemd-journald.

Mabilis na mga recipe at trick

Upang makita lamang ang pinakamalubhang mga error mula sa huling boot: journalctl -p err -b. Kung gusto mo ng eksaktong babala, error at kritikal: journalctl -p warning..crit o journalctl -p 4..2 upang ipahayag ito sa mga numero.

  Paano Paganahin ang Alerto sa Paggamit ng Webcam sa Windows 11: Kumpletong Gabay

Ilista ang lahat ng mga halaga sa isang field at pinuhin ang mga filter: journalctl -F _GID (o -F _UID, -F _EXE, atbp.). Ito ay perpekto para sa pagtuklas ng mga totoong ID bago buuin ang iyong huling query.

Paghiwalayin sa pamamagitan ng executable o command: journalctl _EXE=/usr/bin/sudo o journalctl _COMM=sudo. Kung kailangan mong ihiwalay kung ano ang nanggagaling sa karaniwang output ng mga serbisyo, i-filter ayon sa _TRANSPORT=stdout.

I-filter ayon sa host sa mga shared hostname environment: journalctl _HOSTNAME=debian. At para humiling ng mga tiket mula sa isang partikular na user na alam ang kanilang UID: journalctl _UID=0 (ugat) o ang numero na tumutugma sa iyong kaso.

Kailangan mo bang makakita lamang ng mga mensahe sa antas ng "user" mula sa syslog ng pasilidad? journalctl SYSLOG_FACILITY=1 (at tandaan na ang 3 ay tumutugma sa demonyo). Tinutulungan ka ng mga filter na ito na tularan ang mga classic na view ng syslog kapag lumilipat sa systemd.

Nagtatrabaho sa UTC, ISO 8601 at microsecond precision

Kung mayroon kang mga system sa maraming zone o ihambing sa mga sukatan, magdagdag --utc upang i-standardize ang oras. Para sa malinaw at maayos na mga format, -o short-iso Ito ay isang mahusay na pagpipilian; kung interesado ka sa monotonic na pag-uuri ng orasan (para sa pag-debug ng mga kamag-anak na pagkakasunud-sunod), -o short-monotonic ay iyong kaibigan.

Kapag ang isang insidente ay nangangailangan ng maximum na granularity, -o short-precise nagdaragdag ng mga microsecond sa timestamp. Isa itong hiyas kapag iniuugnay sa mga bakas, profile, o pagkuha ng network.

Magandang kasanayan para sa pang-araw-araw na paggamit

Paganahin ang pagtitiyaga kung nagmamalasakit ka sa kasaysayan: gumawa /var/log/journal o i-configure Storage=persistent at i-restart ang journald. Kung nagtatrabaho ka na may maraming pag-ikot, tukuyin SystemMaxUse y SystemKeepFree upang hindi nito malunod ang partisyon.

Upang i-debug ang mga serbisyo, pagsamahin ang: -u servicio + -f + mga filter ng prayoridad at oras. Idagdag -x kapag pinaghihinalaan mo ang mga misteryosong mensahe; minsan nagbibigay ito ng karagdagang mga pahiwatig na nagliligtas sa iyo mahalagang minuto.

Sa mga pipeline at pag-export, gamitin --no-pager at mga format tulad ng json o export depende sa target na tool. Huwag kalimutan ang seguridad: higpitan ang pag-access sa mga naaangkop na grupo at suriin ang mga pahintulot kung nagbabahagi ka ng mga output na maaaring naglalaman ng sensitibong data.

Binabago ng pag-master sa journalctl kung paano mo nauunawaan ang sistema: gamit ang mga filter ayon sa drive, PID, user, priority, o oras, na may masaganang output at kontrol sa paggamit ng disk, palagi kang magkakaroon ng tumpak na kasaysayan ng kung ano ang nangyayari sa iyong mga kamay. Ito ay isang matibay na tool para sa matalinong pagsubaybay, pag-audit, at pag-debug, nang hindi naliligaw sa libu-libong linya.