Rain Wiki · Linux

journalctl และ systemd journal

วิธีอ่านบันทึกด้วย journalctl ตรวจสอบพื้นที่ที่ journal ใช้งาน และลดขนาดอย่างปลอดภัยด้วยตัวเลือก --vacuum

Linux · Rain Wiki

journalctl คือคำสั่งสำหรับอ่าน systemd journal ซึ่งเป็นที่เก็บข้อมูลบันทึกแบบไบนารีที่ใช้ใน Linux ส่วนใหญ่ในปัจจุบัน สามารถกรองข้อความตามบริการ การบูต เวลา และระดับความสำคัญ อีกทั้งยังสามารถรายงานและจำกัดการใช้งานดิสก์ของ journal ซึ่งมักจะขยายขนาดจนถึงหลายกิกะไบต์ใน /var/log/journal

การอ่านบันทึก

'journalctl -u nginx.service' ใช้แสดงข้อความของหน่วยบริการหนึ่งๆ '-b' จำกัดผลลัพธ์เฉพาะการบูตปัจจุบัน '-b -1' สำหรับการบูตครั้งก่อนหน้า '-p err' แสดงเฉพาะข้อผิดพลาดและระดับที่แย่กว่า '--since "1 hour ago"' จำกัดตามเวลา และ '-f' ใช้ติดตามข้อความใหม่แบบเรียลไทม์

การใช้งานดิสก์

'journalctl --disk-usage' แสดงขนาดรวมของไฟล์ journal ทั้งแบบใช้งานอยู่และที่เก็บถาวร

'--vacuum-size=', '--vacuum-time=' และ '--vacuum-files=' จะลบไฟล์ journal ที่เก็บถาวรออกจนกว่าจะถึงขีดจำกัดที่กำหนด โดยจะไม่ยุ่งกับไฟล์ที่กำลังใช้งานอยู่

การจำกัดถาวร

การจำกัดสามารถตั้งค่าได้ใน /etc/systemd/journald.conf เช่น SystemMaxUse=500M จากนั้นนำไปใช้ด้วย 'systemctl restart systemd-journald' หากไม่มีการตั้งค่า journald จะเก็บ journal ไว้ภายใน 10% ของขนาดระบบไฟล์โดยค่าเริ่มต้น และจำกัดไว้สูงสุดที่ 4 GB

วิธีลดขนาด journal

  1. ตรวจสอบขนาด: journalctl --disk-usage
  2. หมุนไฟล์ที่ใช้งานอยู่เพื่อให้สามารถล้างข้อมูลได้: sudo journalctl --rotate
  3. เก็บไว้เพียงสองสัปดาห์: sudo journalctl --vacuum-time=2weeks
  4. หรือเก็บไว้สูงสุด 500 MB: sudo journalctl --vacuum-size=500M
  5. หากต้องการให้เป็นค่าถาวร ให้ตั้งค่า SystemMaxUse=500M ใน /etc/systemd/journald.conf แล้วรัน: sudo systemctl restart systemd-journald

ข้อควรระวัง

  • บันทึกที่ถูกล้างจะหายไป ควรเก็บประวัติไว้ให้เพียงพอสำหรับการตรวจสอบปัญหา
  • ห้ามลบไฟล์ใน /var/log/journal ด้วยตนเองในขณะที่ journald กำลังทำงาน

หมายเหตุ: RainServer นำเสนอการตรวจสอบและการล้างข้อมูลอย่างปลอดภัยสำหรับ Linux เซิร์ฟเวอร์ โดยจะแสดงสิ่งที่กำลังจะเปลี่ยนแปลงและขออนุญาตก่อนเสมอ

แหล่งอ้างอิง

อัปเดตล่าสุด: 2026-10-08

บทความที่เกี่ยวข้อง