การจัดการ log file ในระบบ linux ด้วยโปรแกรม logrotate
การจัดการ log file ในระบบ linux ด้วยโปรแกรม logrotate
1. ติดตั้งโปรแกรม logrotate
$sudo apt-get install logrotate
โดยปกติจะติดตั้งมาอยู่แล้ว
2. ตัว config ปกติจะอยู่ที่ /etc/logrotate.conf
3. เพิ่ม log ที่ต้องการจัดการ โดยการสร้าง file ไว้ที่ /etc/logrotate.d เช่น apache2
$sudo touch /etc/logrotate.d/apache2
โดยมีรูปแบบดังนี้
file_name {
command
}
เช่น
/var/log/apache2/access.log {
daily หมายถึง ทำทุกวัน
missingok หมายถึง ถ้าไม่พบ file /var/log/apache2/access.log ไม่ต้องแสดง error
notifempty หมายถึง ไม่ต้องทำงานถ้าเป็น file ว่าง
create 640 root adm หมายถึง file ที่ได้ให้มี promission เป็น 640 และมีเจ้าของ file คือ root อยู่ในกลุ่ม adm
sharedscripts หมายถึงให้ทำงานตาม script เพียงครั้งเดียว
postrotate หมายถึงให้ทำงาน script หลังจากการ rotated
if /etc/init.d/apache2 status > /dev/null ; then \
/etc/init.d/apache2 reload > /dev/null; \
fi;
#!/bin/sh
LIMIT=90
timeaccess=`date +%Y-%m-%d`
cp /var/log/apache2/access.log.1 /var/log/apache2/access.log-$timeaccess
cp /var/log/apache2/error.log.1 /var/log/apache2/error.log-$timeaccess
find /home/log-squid -maxdepth 1 -type f \( -ctime $LIMIT \) -print \-exec rm {} \; > /dev/null
endscript จุดสิ้นสุด script
prerotate หมายถึงให้ทำงาน script ก่อนการ rotated
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi; \
endscript จุดสิ้นสุด script
}
- Log in to post comments
- 1050 views