วิธีดูบันทึก Systemctl

Withi Du Banthuk Systemctl



systemd เป็นหนึ่งในระบบ init ที่นำมาใช้กันอย่างแพร่หลายบน Linux ข้อได้เปรียบที่สำคัญของ systemd คือความสามารถในการจัดการบันทึกของระบบ จะรวบรวมข้อความเคอร์เนลและกระบวนการของผู้ใช้ทั้งหมดไว้ในบันทึกที่เรียกว่า วารสาร . ที่ บันทึกประจำวัน เป็น daemon ที่รวบรวมและจัดการบันทึกในไฟล์ไบนารี Daemon นี้มีประโยชน์หลักในการจัดเก็บข้อมูลในรูปแบบที่มีโครงสร้างและจัดทำดัชนี ทำให้ง่ายต่อการเข้าถึงและวิเคราะห์ผ่าน วารสาร คุณประโยชน์.

ในคู่มือนี้ ฉันจะอธิบายวิธีการดูบันทึก systemd บน Linux โดยใช้ยูทิลิตีบรรทัดคำสั่งต่างๆ

บันทึก: คำสั่งที่กล่าวถึงในคู่มือนี้ดำเนินการบน Ubuntu พวกเขาจะทำงานได้โดยไม่มีข้อผิดพลาดบน Linux ทุกรุ่นที่มาพร้อมกับระบบ systemd init







วิธีการดูบันทึก systemctl

มีสองวิธีในการดูบันทึก systemd บน Linux:



systemctl ให้บันทึกเฉพาะบริการล่าสุด ในขณะที่ Journalctl ให้บันทึกในเชิงลึกทั้งระบบของบริการทั้งหมดและบริการเฉพาะ



ฉันจะสำรวจยูทิลิตี้ทั้งสองเพื่อดูบันทึก systemd แต่ก่อนอื่น มาทำความเข้าใจความแตกต่างที่สำคัญระหว่างคำสั่ง systemctl และjournalctl กันก่อน





systemctl.dll คืออะไร

Systemctl เป็นโปรแกรมอรรถประโยชน์บรรทัดคำสั่งที่จัดการบริการ systemd เช่นการเปิดหรือปิดบริการและการดูสถานะ ที่ สถานะ systemctl คำสั่งยังพิมพ์บันทึกสองสามบรรทัดของบริการที่ด้านล่างของเอาต์พุต และบันทึกนี้เกิดขึ้นหลังจากการบูตครั้งล่าสุด อย่างไรก็ตาม บรรทัดบันทึกของบริการเหล่านี้มาจากหลังจากการบูตปัจจุบันเท่านั้น

Journalctl.js คืออะไร

Journalctl เป็นโปรแกรมอรรถประโยชน์บรรทัดคำสั่งที่ใช้ในการพิมพ์บันทึกที่รวบรวมโดย systemd เมื่อเปรียบเทียบกับ systemctl จะให้เอาต์พุตโดยละเอียดพร้อมตัวเลือกการกรอง ยูทิลิตี้นี้ออกแบบมาเพื่อ:



  • อ่านบันทึก (บันทึกที่เก่าที่สุดมาก่อน)
  • ตรวจสอบบันทึก
  • กรองบันทึกตามเวลา บริการ หรือผู้ใช้

systemd รวบรวมบันทึกจากเคอร์เนล บริการ และ daemons และจัดเก็บไว้ในที่ส่วนกลาง

วิธีดูบันทึกของบริการโดยใช้ systemctl

ไวยากรณ์ทั่วไปเพื่อค้นหาบันทึกของบริการโดยใช้ ระบบ อรรถประโยชน์ดังต่อไปนี้

สถานะ systemctl [ ชื่อบริการ ]

ตัวอย่างเช่น หากต้องการดูข้อมูลบันทึกของ smbd.บริการ ใช้คำสั่งที่ระบุด้านล่าง

สถานะ systemctl smbd.service

หากต้องการรับเอาต์พุตโดยไม่มีการแบ่งหน้า ให้เพิ่ม –ไม่มีเพจเจอร์ ตัวเลือกในคำสั่ง

สถานะ systemctl smbd.service --ไม่มีเพจเจอร์

วิธีดูบันทึกของบริการโดยใช้ Journalctl

หากต้องการดูบันทึกของบริการเฉพาะของ systemd ให้ใช้ วารสาร กับ -ใน คำสั่งและบริการหรือชื่อหน่วย

วารสาร -ใน [ ชื่อบริการ ]

ในคำสั่งข้างต้น -ใน ธง ย่อมาจาก -หน่วย ใช้ในการกรอง วารสาร ส่งออกตามชื่อหน่วย

เช่น หากต้องการพิมพ์บันทึกของ smbd ภูตฉันจะแทนที่ [ชื่อหน่วย] กับ smbd.บริการ .

วารสาร -ใน smbd.บริการ

ในเอาต์พุต จะเห็นได้ว่ารายการที่เก่าที่สุดมาก่อน จากนั้นจึงบันทึกหลังจากการบูตแต่ละครั้ง

เพื่อรับรายการล่าสุดก่อนใช้งาน -มันคือ ย่อจาก –เพจเจอร์-end.

วารสาร -ใน smbd.บริการ -มันคือ

หากคุณต้องการละเว้นการแบ่งหน้าออกจากเอาต์พุต เพียงผนวก the –ไม่มีเพจเจอร์ ในคำสั่งที่กล่าวมาข้างต้น

เพื่อพิมพ์รายการบันทึกการใช้งานแบบเรียลไทม์อย่างต่อเนื่อง -ฉ ย่อจาก -ติดตาม .

วารสาร -ใน smbd.บริการ -ฉ

การกรองสามารถขยายเพิ่มเติมได้โดยใช้แฟล็ก -b ซึ่งย่อมาจาก –บูต ซึ่งจะพิมพ์บันทึกตามการบูตปัจจุบัน

วารสาร -ใน [ ชื่อหน่วย ] -ข

มาพิมพ์บันทึกของ smbd.บริการ จากการบูตครั้งล่าสุด

วารสาร -ใน smbd.บริการ -ข

ผลลัพธ์ข้างต้นคล้ายกับผลลัพธ์ที่เราใช้ สถานะ systemctl สั่งการ.

หากต้องการดูภาพรวมบันทึกโดยละเอียด ให้ใช้ -x ย่อจาก –แคตตาล็อก ตัวเลือก.

วารสาร -ใน smbd.บริการ -x

สิ่งนี้จะเพิ่มคำอธิบายสั้นๆ ของบันทึกต่อท้าย

ตอนนี้ หากต้องการพิมพ์บันทึกตามเวลาโดยใช้ Journalctl มีสองตัวเลือก -ส ย่อจาก -เนื่องจาก และ -ใน ย่อจาก -จนกระทั่ง .

วารสาร -ใน [ ชื่อหน่วย ] -ส '[ปี-เดือน-วัน] [ชั่วโมง:นาที:วินาที]'

เช่น การดูบันทึกของหน่วย smbd จาก 2024:01:30 12:05:00 .

วารสาร -ใน smbd.บริการ -ส '2024:01:30 12:05:00'

บทสรุป

หากต้องการดูบันทึก systemd ของบริการ มียูทิลิตีหลักสองรายการ ได้แก่journalctl และ systemctl Journalctl ได้รับการออกแบบมาโดยเฉพาะสำหรับการดูบันทึกของ systemd อย่างไรก็ตาม systemctl ยังมีตัวเลือกในการพิมพ์บันทึกของบริการอีกด้วย หากต้องการพิมพ์บันทึกการใช้บริการ เจอร์นัลctl -u [ชื่อหน่วย] และ ระบบ [ชื่อหน่วย].