การจัดการ 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
}

Rating

No votes yet