มะไฟ ขอนำเสนอเรื่องของ Log Files ที่ติดค้างคาอยู่ เพื่อเป็นปฏิบัติบูชา เอกสารถอดความจากหนังสือ Essentail System Administration ของ AEleen Frisch ของสำนักพิมพ์ O'Reilly
การจัดการแฟ้มบันทึกระบบ(system log files) เรามีแนวทางจัดการได้ ๒ แนวทางคือ
- จำกัดขนาดที่โตขึ้น โตขึ้นไปเรื่อยๆ แต่ต้องบันทึกข้อมูลไว้ให้พอเพียง เพื่อคาดการความต้องการ ในอนาคต
- รวมทั้งการตรวจสอบแฟ้มบันทึกระบบเหล่านี้ เพื่อ ระบุ และ ดำเนินการ ตามสมควรแก่ ความสำคัญ ของเรื่องราวที่บันทึก
(๑) แฟ้มบันทึกระบบ ที่ไม่ได้รับการตรวจสอบ จะเพิ่มขนาดโตขึ้น และกินเนื้อที่ hard disk ทางแก้ทั่วไปคือ ให้จัดเก็บจำเพาะส่วนที่สำคัญไว้ในดิสก์ ในทางปฏิบัติหนึ่งที่ใช้กันคือ การ rename แฟ้มบันทึกระบบ ที่ทันสมัยที่สุดไว้ และเก็บแฟ้มบันทึกระบบ เพียงสามสี่แฟ้มย้อนหลังไว้ อย่างสม่ำเสมอ ซึ่งสามารถกระทำโดยการลบแฟ้มฯ ที่เก่าที่สุดทิ้งไป เปลี่ยนชื่อแฟ้มฯปัจจุบัน และ สร้างใหม่ขึ้นมา เป็นวงเช่นนี้
ตัวอย่าง script ข้างล่างนี้ จะหมุนเวียนแฟ้มฯ(su.log)เก่าเอาไว้เพียง ๓ แฟ้มฯ
#!/bin/sh
cd /var/adm
if [ -r su.log.1 ]; then
mv -f su.log.1 su.log.2
fi
if [ -r su.log.0 ]; then
mv -f su.log.0 su.log.1
fi
if [ -r su.log ]; then
cp su.log su.log.0
fi
cat /dev/null > su.log
ในระบบนี้ มีแฟ้มฯเก่า su.log อยู่ ๓ แฟ้มฯ ณ เวลาใดเวลาหนึ่งคือ su.log.0 (แฟ้มที่แล้ว), su.log.1 และ su.log.2 นอกเหนือไปจกแฟ้มฯปัจจุบัน su.log เมื่อ script นี้ทำงาน แฟ้มฯ su.log.n จะได้รับการเปลี่ยนชื่อ และ หมุนกลับออกไป กล่าวคือ 1 --> 2, 0 --> 1 และแฟ้มปัจจุบัน su.log จะเป็น su.log.0 และท้ายสุด แฟ้มปัจจุบันที่ว่างๆจะได้รับการสร้างขึ้นมาแทนที่
script นี้ควรใช้งาน หรือ วิ่งโดยอัตโนมัติด้วย cron ในแต่ละสัปดาห์
ขอให้สังเกตุการสร้างแฟ้มฯปัจจุบันขึ้นมาโดยไม่ลบแฟ้มฯเดิมและสร้างขึ้นมาใหม่
ใน FreeBSD เขามี newsyslog(8) ให้บริการงานเช่นนี้อยู่ และ สำหรับท่านที่คุ้นเคยกับ logrotate ทีม ports ของ FreeBSD เขาก็มีให้ ใน sysutils/logrotate