tomcat日誌切割-logrotate

餘二五發表於2017-11-14

Tomcat日誌切割(logrotate)

logrotate是個強大的系統軟體,它對日誌檔案有著一套完整的操作模式,譬如:轉儲、郵件和壓縮等,並且預設logrotate加到cron(/etc/cron.daily/logrotate)作為每日任務執行。自動有了logrotate,我想不用再自己寫日誌切割指令碼。

如下對Tomcat日誌catalina.out日誌切割

1日誌位置

[root@tomcat-1 git-repo]# ls -hl /data/application/story-web/webserver/apache-tomcat-8.0.36/logs/catalina.out

-rw-r–r– 1 root root 11K 10月 31 12:27 /data/application/story-web/webserver/apache-tomcat-8.0.36/logs/catalina.out

2配置logrotate對catalina.out日誌切割

[root@tomcat-1 ~]# cat /etc/logrotate.d/tomcat 

/data/application/story-web/webserver/apache-tomcat-8.0.36/logs/catalina.out {

daily

rotate 15

missingok

dateext

compress

notifempty

copytruncate

}

引數詳解:

● daily 指定轉儲週期為每天

● rotate 5 指定日誌檔案刪除之前轉儲的次數,0指沒有備份,5指保留5個備份

● missingok 如果日誌不存在則忽略該警告資訊

● dateext 檔案字尾是日期格式,也就是切割後檔案是:xxx.log-20150828.gz

● compress 通過gzip壓縮轉儲以後的日誌(gzip -d xxx.gz解壓)

● notifempty 如果是空檔案的話,不轉儲

● copytruncate 用於還在開啟中的日誌檔案,把當前日誌備份並截斷

如何起作用

  1. 每天晚上,cron daemon會自動執行/etc/cron.daily目錄下的任務
  2. 這個會觸發/etc/cron.daily/logrotate檔案,logrotate一般是隨linux按安裝的。它會執行這個命令-“/etc/sbin/logrotate /etc/logrotate.conf”(注意空格)
  3. /etc/logrotate.conf 包含了/etc/logrotate.d目錄下的所有指令碼
  4. 這個會觸發上一步你寫的/etc/logrotate.d/tomcate檔案

    手動執行logrotate

    執行以下語句來手動執行cron任務

    1 /usr/sbin/logrotate /etc/logrotate.conf
本文轉自 天樂 51CTO部落格,原文連結:http://blog.51cto.com/tianlegg/2054118,如需轉載請自行聯絡原作者


相關文章