Contents

พื้นที่ดิสก์บน Linux หมดหรือยัง? ตรวจสอบบันทึกของคุณ!

ลิงค์ด่วน

⭐ เหตุใดบันทึกจึงกินพื้นที่ดิสก์มาก

⭐ค้นหาบันทึกของคุณ

⭐ Linux หมุนไฟล์บันทึกอย่างไร

⭐ บันทึกใดที่ปลอดภัยที่จะลบ?

⭐ วิธีแก้ไขสิ่งที่เติมเต็มบันทึกของคุณ

ประเด็นที่สำคัญ

เป็นที่ทราบกันว่าระบบปฏิบัติการ Linux สร้างข้อมูลบันทึกจำนวนมาก ซึ่งอาจใช้พื้นที่จัดเก็บข้อมูลบนฮาร์ดไดรฟ์หรือโซลิดสเตตไดรฟ์จำนวนมาก

โดยทั่วไปกลไกของระบบของคุณจะใช้วิธีการบีบอัดบันทึกที่เก็บไว้เพื่อประหยัดพื้นที่จัดเก็บข้อมูลบนอุปกรณ์ของคุณ

การใช้คำสั่ง journalctl หรือ tail-f ช่วยให้สามารถอ่านรายการบันทึกและระบุกระบวนการที่อาจก่อกวน ทำให้สามารถแก้ไขปัญหาและแก้ไขปัญหาได้อย่างมีประสิทธิภาพ

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

เหตุใดบันทึกจึงใช้พื้นที่ดิสก์มาก

ไฟล์บันทึกมีบทบาทสำคัญในการบำรุงรักษาระบบ Linux โดยการให้ข้อมูลเชิงลึกเกี่ยวกับการดำเนินงานและทำให้สามารถแก้ไขปัญหาใดๆ ที่พบได้ เช่นเดียวกับ Event Viewer บน Windows daemons การบันทึกของ Linux เสนอวิธีการในการตรวจสอบกิจกรรมของระบบและวินิจฉัยปัญหา เป็นที่น่าสังเกตว่าโดยทั่วไปแล้วไฟล์บันทึกจะไม่ใช้พื้นที่จัดเก็บข้อมูลจำนวนมาก เนื่องจากการแจกแจงส่วนใหญ่มีกลไกในการควบคุมการใช้งานดิสก์

ในอดีต ไฟล์บันทึกของ Linux โดยทั่วไปจะประกอบด้วยข้อมูลข้อความธรรมดา อย่างไรก็ตาม เนื่องจากการกระจายที่โดดเด่นจำนวนมากขึ้นได้เปลี่ยนไปสู่การใช้ systemd สำหรับการจัดการระบบปฏิบัติการ ไฟล์บันทึกเหล่านี้จึงมีอยู่ในรูปแบบไบนารี่และได้รับการดูแลโดย Journald ซึ่งเป็นบริการ systemd เอง ขึ้นอยู่กับการแจกจ่ายเฉพาะที่ใช้ rsyslog หรือ syslog-ng อาจถูกนำมาใช้เป็นวิธีอื่นในการจัดการข้อมูลบันทึกดังกล่าว

เพื่อรักษาความจุในการจัดเก็บข้อมูลบนฮาร์ดไดรฟ์ของคอมพิวเตอร์ ถือเป็นหลักปฏิบัติทั่วไปสำหรับระบบที่จะเก็บถาวรและลบไฟล์บันทึกที่ล้าสมัยซึ่งไม่เกี่ยวข้องหรือจำเป็นอีกต่อไป กระบวนการนี้เกี่ยวข้องกับการบีบอัดและการลบข้อมูลเก่าเพื่อให้มีที่ว่างสำหรับข้อมูลล่าสุดที่อาจมีความสำคัญมากขึ้น

มักสันนิษฐานว่าไฟล์บันทึกไม่ได้ใช้พื้นที่จัดเก็บข้อมูลที่สำคัญ อย่างไรก็ตาม การดำเนินการที่ผิดปกติสามารถสร้างรายการบันทึกในอัตราที่เกินความสามารถของระบบในการหมุนเวียนและจัดการรายการบันทึกได้อย่างมีประสิทธิภาพ

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

คำสั่ง du เมื่อเรียกใช้ด้วยตัวเลือก -h เป็นวิธีที่มีประสิทธิภาพในการตรวจสอบจำนวนพื้นที่ดิสก์ที่ไฟล์และไดเร็กทอรีใช้อยู่ในปัจจุบันภายในไดเร็กทอรีที่ระบุหรือข้ามหลายไดเร็กทอรีในระบบของคุณ

 du -h /var/log 

คุณจะเห็นการแจงนับไดเรกทอรีย่อยทั้งหมด พร้อมด้วยความจุสะสมของไดเรกทอรีย่อย:

/th/images/du-h-var-log.png

ค้นหาบันทึกของคุณ

การใช้การกระจาย Linux ร่วมสมัยที่ใช้ systemd จำเป็นต้องมียูทิลิตี JournalTL (journalt) สำหรับการตรวจสอบข้อมูลบันทึก ตำแหน่งที่เก็บข้อมูลของบันทึกเหล่านี้ขึ้นอยู่กับตัวแปรระบบปฏิบัติการเฉพาะ และอาจพบได้ในไดเร็กทอรี’/var/log/journal’หรือไดเร็กทอรี’/run/log/journal’ซึ่งทั้งสองอย่างนี้มักอยู่ภายใต้ วอลุ่มระบบไฟล์รูท

/th/images/journalctl-logs.png

หากต้องการเข้าถึงไฟล์บันทึกโดยใช้เทอร์มินัล ให้ป้อน “journald” ในพร้อมท์คำสั่ง นอกจากนี้ยังมีทางเลือกบรรทัดคำสั่งที่สะดวกสบายหลายประการสำหรับวัตถุประสงค์เฉพาะ ตัวอย่างเช่น หากต้องการตรวจสอบข้อความเริ่มต้น ให้ใช้ตัวเลือก"-b":

 journalctl -b 

การใช้แฟล็ก -f ช่วยให้ผู้ใช้สามารถอ่านข้อความที่บันทึกไว้ของระบบของตนได้แบบเรียลไทม์และเป็นปัจจุบัน

หากระบบปฏิบัติการของคุณใช้กลไกการเริ่มต้นที่แตกต่างจาก systemd ไฟล์บันทึกจะอยู่ภายในไดเร็กทอรี/var/log ในทางกลับกัน แม้ว่าจะใช้ systemd แอปพลิเคชันบางตัวอาจยังคงเก็บข้อมูลบันทึกไว้ภายในโฟลเดอร์นี้ ไฟล์บันทึกเป็นเอกสารข้อความที่ไม่มีการตกแต่ง และสามารถอ่านได้โดยใช้เครื่องมือแบ่งหน้าแบบธรรมดา เช่น"น้อยกว่า"

ตัวอย่างเช่น หากต้องการอ่านบันทึกของระบบ:

 less /var/log/syslog

ข้อมูลทั้งหมดภายในไฟล์บันทึก ซึ่งประกอบด้วยบรรทัดจำนวนมากซึ่งอาจมีจำนวนถึงหลักพัน จะแสดงเพื่อให้คุณพิจารณา

/th/images/journactl-f.png

นอกจากนี้ยังอาจสังเกตความคืบหน้าของมันผ่านการใช้ตัวดัดแปลง “-f” ของคำสั่ง tail โดยการรันคำสั่งที่เหมาะสมบนเทอร์มินัลหรือพรอมต์คำสั่ง

 tail -f /var/log/syslog

Linux หมุนไฟล์บันทึกอย่างไร

/th/images/logrotate-service.png

การมีอยู่ของไฟล์ภายในไดเร็กทอรี/var/log ที่มีป้ายกำกับที่ลงท้ายด้วย"log.N.gz"โดยที่ N แทนค่าทางคณิตศาสตร์ บ่งบอกถึงการทำงานของกลไกของระบบในการเก็บถาวรบันทึกที่ล้าสมัย โดยทั่วไปแล้วระบบปฏิบัติการส่วนใหญ่จะมีแอปพลิเคชันซอฟต์แวร์ที่เรียกว่า"logrotate"ซึ่งทำหน้าที่นี้โดยอัตโนมัติ Logrotate สามารถกำหนดค่าให้ดำเนินการเป็นงานที่กำหนดเวลาไว้ซึ่งเริ่มต้นโดย cron daemon หรือทริกเกอร์โดยใช้ตัวจับเวลา systemd

โดยทั่วไป Logrotate จะถูกเปิดใช้งานในการกระจายส่วนใหญ่ในแต่ละวัน โดยมีฟังก์ชันหลักในการบีบอัดไฟล์บันทึกที่เก็บถาวรผ่านการใช้เทคโนโลยี gzip ซึ่งสามารถระบุได้ด้วยการมีนามสกุลไฟล์ “.gz” ที่ต่อท้ายไฟล์บีบอัด Logrotate ใช้เกณฑ์เฉพาะ เช่น อายุหรือขนาดไฟล์ เพื่อพิจารณาว่าควรบีบอัดเมื่อใด ขณะเดียวกันก็ใช้เกณฑ์เพิ่มเติมสำหรับการล้างไฟล์บันทึกที่ล้าสมัยออกจากระบบ

การตั้งค่ามาตรฐานของ logrotate น่าจะเพียงพอสำหรับผู้ใช้เดสก์ท็อปส่วนใหญ่ อย่างไรก็ตาม ผู้ที่ต้องการปรับการทำงานของมันอาจทำได้โดยการเปลี่ยนแปลงไฟล์การกำหนดค่าที่ /etc/logrotate.conf ในด้านความสามารถในการกำกับดูแล นอกจากนี้ เราต้องพิจารณาแก้ไขการกำหนดเวลา cron ของระบบหรือการกำหนดค่าตัวจับเวลา systemd ซึ่งโดยทั่วไปจะอยู่ในขอบเขตอำนาจของผู้ดูแลระบบเซิร์ฟเวอร์

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

บันทึกใดที่ปลอดภัยที่จะลบ?

/th/images/var-log.png

ในกรณีที่จำเป็นต้องดึงพื้นที่จัดเก็บเพิ่มเติมและขั้นตอนมาตรฐานหมดลง เราอาจพิจารณากำจัดไฟล์บันทึกที่บีบอัดด้วย gzip ซึ่งแสดงด้วยนามสกุลไฟล์ “.gz” อย่างไรก็ตาม เนื่องจากเอกสารเหล่านี้เกี่ยวข้องกับการทำงานของระบบ จึงจำเป็นต้องกำจัดทิ้งภายใต้อำนาจของผู้ใช้ที่มีสิทธิ์ คำสั่ง “rm” สามารถใช้เพื่อจุดประสงค์นี้ได้ โดยต้องใช้สิทธิ์ผู้ดูแลระบบจึงจะดำเนินการได้อย่างมีประสิทธิภาพ

 sudo rm /var/syslog/syslog.*gz 

คำสั่งนี้จะกำจัดไฟล์ทั้งหมดที่มี “syslog” อยู่ในชื่อและลงท้ายด้วย “.gz”

เมื่อใช้คำสั่ง sudo เพื่อดำเนินการที่อาจเป็นอันตรายหรือทำลายล้าง เช่น การลบไฟล์ด้วย rm สิ่งสำคัญอย่างยิ่งคือต้องใช้ความระมัดระวังและความอุตสาหะอย่างที่สุด เพื่อหลีกเลี่ยงผลที่ตามมาโดยไม่ตั้งใจซึ่งอาจเป็นผลมาจากการใช้งานที่ไม่เหมาะสม

โดยทั่วไปขอแนะนำว่าอย่าลบไฟล์ออกจากไดเร็กทอรีระบบโดยไม่เข้าใจถึงผลที่ตามมาอย่างถ่องแท้ แต่การลบไฟล์บันทึกที่เก็บถาวรไม่ควรส่งผลให้เกิดปัญหาใดๆ ตราบใดที่ไฟล์เหล่านั้นหายไป อย่างไรก็ตาม หากมีปัญหาเกิดขึ้น การเรียกข้อมูลจากบันทึกบันทึกก่อนหน้าอาจจำเป็นสำหรับวัตถุประสงค์ในการแก้ไขปัญหา

วิธีแก้ไขสิ่งที่กรอกบันทึกของคุณ

วิธีหนึ่งที่มีประสิทธิภาพในการพิจารณาเนื้อหาของไฟล์บันทึกคือการใช้คำสั่งjournalctlหรือtail-f โดยเน้นที่ข้อความแสดงข้อผิดพลาดที่เกิดซ้ำซึ่งอาจปรากฏขึ้นภายในไฟล์เหล่านั้น

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