Paano Tingnan ang Systemctl Logs

Paano Tingnan Ang Systemctl Logs



Ang systemd ay isa sa malawakang pinagtibay na init system sa Linux. Ang pangunahing bentahe ng systemd ay ang kakayahang pamahalaan ang mga log ng system. Kinokolekta nito ang lahat ng mga mensahe ng kernel at mga proseso ng gumagamit sa isang log na tinatawag Talaarawan . Ang naka-journal ay ang daemon na kumukuha at namamahala sa mga log sa isang binary file. Ang daemon na ito ay may pangunahing benepisyo ng pag-iimbak ng data sa structured at indexed form, na ginagawang madali ang pag-access at pagsusuri sa pamamagitan ng journalctl kagamitan.

Sa gabay na ito, tatalakayin ko kung paano tingnan ang mga systemd log sa Linux gamit ang iba't ibang mga utility ng command line.

Tandaan: Ang mga utos na binanggit sa gabay na ito ay ginagawa sa Ubuntu. Gagana ang mga ito nang walang mga error sa lahat ng mga distribusyon ng Linux na kasama ng systemd init system.







Mga Paraan para Tingnan ang Systemctl Logs

Mayroong dalawang diskarte sa pagtingin sa mga systemd log sa Linux:



Ang systemctl ay nagbibigay ng pinakabagong mga log na partikular sa serbisyo, habang ang journalctl ay nagbibigay ng malalim na mga log sa buong system ng lahat ng mga serbisyo at ang partikular na serbisyo.



Ako ay galugarin ang parehong mga utility upang tingnan ang systemd logs. Ngunit una, unawain natin ang pangunahing pagkakaiba sa pagitan ng systemctl at journalctl na mga utos.





Ano ang systemctl

Ang Systemctl ay isang command line utility na namamahala sa mga serbisyo ng systemd, gaya ng pagpapagana o hindi pagpapagana ng serbisyo at pagtingin sa status. Ang katayuan ng systemctl Ang command ay nagpi-print din ng ilang linya ng log ng serbisyo sa ibaba ng output, at ang log na ito ay pagkatapos ng kamakailang boot. Gayunpaman, ang mga log line na ito ng serbisyo ay mula pagkatapos ng kasalukuyang boot lamang.

Ano ang journalctl

Ang journalctl ay isang command line utility na ginagamit upang i-print ang mga log na nakolekta ng systemd. Kung ikukumpara sa systemctl, nagbibigay ito ng detalyadong output na may mga opsyon sa pag-filter. Ang utility na ito ay idinisenyo upang:



  • Basahin ang mga log (Una ang pinakalumang log)
  • Subaybayan ang mga log
  • I-filter ang mga log batay sa oras, serbisyo, o user

Kinokolekta ng systemd ang mga log mula sa kernel, mga serbisyo, at mga daemon at iniimbak ang mga ito sa isang sentralisadong lugar.

Paano Tingnan ang Log ng isang Serbisyo gamit ang systemctl

Ang pangkalahatang syntax upang mahanap ang log ng isang serbisyo gamit ang systemctl utility ay binanggit sa ibaba.

katayuan ng systemctl [ pangalan ng serbisyo ]

Halimbawa, upang tingnan ang impormasyon ng log ng smbd.service gamitin ang utos na ibinigay sa ibaba.

systemctl status smbd.service

Upang makakuha ng output nang walang pagination, idagdag ang -walang pager opsyon sa utos.

systemctl status smbd.service --walang pager

Paano Tingnan ang Log ng isang Serbisyo gamit ang journalctl

Upang tingnan ang log ng isang partikular na serbisyo ng systemd, gamitin journalctl kasama ang -sa command at serbisyo o pangalan ng unit.

journalctl -sa [ pangalan ng serbisyo ]

Sa utos sa itaas, ang -sa bandila, short for – yunit ay ginagamit upang salain ang journalctl output sa pamamagitan ng pangalan ng unit.

Halimbawa, upang i-print ang log ng smbd daemon, papalitan ko ang [pangalan ng yunit] kasama smbd.service .

journalctl -sa smbd.service

Sa output, makikita na ang pinakalumang entry ay mauna at pagkatapos ay mag-log pagkatapos mailista ang bawat boot.

Upang makuha ang pinakabagong entry unang gamitin -Ito ay maikli para sa –pager-end.

journalctl -sa smbd.service -Ito ay

Kung gusto mong alisin ang pagination mula sa output, idagdag lang ang -walang pager sa mga nabanggit na utos.

Upang patuloy na i-print ang mga log entry sa real-time na paggamit -f maikli para sa –sumunod .

journalctl -sa smbd.service -f

Ang pag-filter ay maaaring higit pang palawakin sa pamamagitan ng paggamit ng -b flag na maikli para sa -boot , na nagpi-print ng mga log batay sa kasalukuyang boot.

journalctl -sa [ pangalan ng yunit ] -b

Mag-print tayo ng mga tala ng smbd.service mula sa kamakailang boot.

journalctl -sa smbd.service -b

Ang output sa itaas ay kahawig ng output na nakukuha natin gamit ang katayuan ng systemctl utos.

Upang makakuha ng detalyadong pangkalahatang-ideya ng log, gamitin ang -x maikli para sa –katalogo opsyon.

journalctl -sa smbd.service -x

Magdaragdag ito ng maikling paglalarawan ng log.

Ngayon, upang mag-print ng mga log batay sa oras gamit ang journalctl mayroong dalawang pagpipilian, -S maikli para sa –simula at -SA maikli para sa –hanggang sa .

journalctl -sa [ pangalan ng yunit ] -S '[year-month-day] [hours:minutes:seconds]'

Halimbawa, upang tingnan ang mga log ng unit smbd mula sa 2024:01:30 12:05:00 .

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

Konklusyon

Upang tingnan ang systemd logs ng isang serbisyo, mayroong dalawang pangunahing utility, journalctl at systemctl. Ang journalctl ay partikular na idinisenyo para sa pagtingin sa mga log ng systemd. Gayunpaman, ang systemctl ay mayroon ding opsyon sa pag-print ng log ng serbisyo. Upang i-print ang log ng isang paggamit ng serbisyo, journalctl -u [pangalan ng yunit] at systemctl [pangalan ng yunit].