Tomcat日志切割(logrotate)
logrotate是個(gè)強(qiáng)大的系統(tǒng)軟件,它對(duì)日志文件有著一套完整的操作模式,譬如:轉(zhuǎn)儲(chǔ)、郵件和壓縮等,并且默認(rèn)logrotate加到cron(/etc/cron.daily/logrotate)作為每日任務(wù)執(zhí)行。自動(dòng)有了logrotate,我想不用再自己寫日志切割腳本。
如下對(duì)Tomcat日志catalina.out日志切割
# ls -lh /usr/local/tomcat/logs/catalina.out
-rw-r--r-- 1 www www 14M Aug 28 15:55 /usr/local/tomcat/logs/catalina.out
配置logrotate對(duì)catalina.out日志切割
# cat /etc/logrotate.d/tomcat
/usr/local/tomcat/logs/catalina.out {
daily
rotate 5
missingok
dateext
compress
notifempty
copytruncate
}
參數(shù)詳解:
daily 指定轉(zhuǎn)儲(chǔ)周期為每天
rotate 5 指定日志文件刪除之前轉(zhuǎn)儲(chǔ)的次數(shù),0指沒有備份,5指保留5個(gè)備份
missingok 如果日志不存在則忽略該警告信息
dateext 文件后綴是日期格式,也就是切割后文件是:xxx.log-20150828.gz
compress 通過gzip壓縮轉(zhuǎn)儲(chǔ)以后的日志(gzip -d xxx.gz解壓)
notifempty 如果是空文件的話,不轉(zhuǎn)儲(chǔ)
copytruncate 用?還在打開中的日志文件,把當(dāng)前日志備份并截?cái)?/p>
立即截?cái)嗳罩荆?/p>
# logrotate --force /etc/logrotate.d/tomcat
效果如下:
# ls -lh /usr/local/tomcat/logs/catalina.out*
-rw-r--r-- 1 www www 0 Aug 28 16:00 /usr/local/tomcat/logs/catalina.out
-rw-r--r-- 1 www www 1.1M Aug 28 16:00 /usr/local/tomcat/logs/catalina.out-20150828.gz