依照時間來刪除非固定檔名的 Apache2 Log 檔

依照此篇作法:Apache Log檔 使用日期格式 當 檔名設定,客製化 Log 檔名,卻會造成檔名砍不乾淨的問題,要怎麼正確清掉過期得檔案呢?

依照時間來刪除非固定檔名的 Apache2 Log 檔

logrotate 測試方式

  • /usr/sbin/logrotate -vdf /etc/logrotate.conf # 測試跑得狀況

主要指令

  • find . -mtime +30 -name "access.*.log" -print
  • find . -mtime +30 -name "access.*.log" -exec rm {} \; -print
  • 重點 rotate 0, find ...

參考範例

/logs/system/mindundi/* {
    rotate 0
    daily
    missingok
    sharedscripts
    postrotate
        find /logs/system/mindundi/ -name "*log" -mtime +15 -exec /bin/rm -f {} \;
    endscript
}
/tmp/logrotate/dummy {
    firstaction
        find /logs/xxx//xxx -name ".log" -mtime +7 -exec /bin/rm -f {} \;
        find /logs/yyy//www* -name "www.log" -mtime +7 -exec /bin/rm -f {} \;
        find /logs/zzz//qqq* -name ".log" -mtime +7 -exec /bin/rm -f {} \;
    endscript
    rotate 1
    daily
    missingok
}
/var/log/rsync/dummy {
    daily
    rotate 0
    create
    ifempty
    lastaction
        /usr/bin/find /var/log/rsync/ -mtime +7 -delete
        /usr/bin/find /var/log/rsync/ -mtime +1 -exec gzip -q {} \;
    endscript
}

我自己的設定作法如下:

/var/log/apache2/*.log {
    daily
    rotate 30
    compress
    notifempty
    create 644 root adm
    sharedscripts
    postrotate
        if /etc/init.d/apache2 status > /dev/null ; then \
            /etc/init.d/apache2 reload > /dev/null; \
        fi;
        /usr/bin/find /var/log/apache2/ -mtime +30 -delete
    endscript
}

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料