使用logrotate分割Tomcat的catalina日誌
切割catalian日誌的方式有很多種,比如shell腳本的、cronolog或者通過配置log4j等等這些都可以實現。但今天我要介紹是使用logrotate來按日期生成日誌。
原文是一個外國博主的文章,在這裏分享給大家。
如果catalina.out的大小超過了2G,那麼tomcat可能在沒有錯誤提示的情況下崩潰、無法啓動。所以爲了避免出現這個問題,我們應該每天分割catalina.out。
如何每天自動的分割catalina.out或者大小達到5M時切割catalina.out
1.新建一個文件
在/etc/logrotate.d/ 目錄下新建一個文件,命名隨意。
# /etc/logrotate.d/tomcat
2.複製下面的語句至上文新建的文件中
# /var/log/tomcat/catalina.out { copytruncate daily rotate 7 compress missingok size 5M }
各個配置的具體含義:
- 確保/var/log/tomcat/catalina.out指向你服務器中的catalina.out的地址
- daily - 每天切割
- rotate - 保留最多七個文件
- compress - 壓縮分割後的文件
- size - 當catalina.out大於5M時分割
如何起作用
- 每天晚上,cron daemon會自動執行/etc/cron.daily目錄下的任務
- 這個會觸發/etc/cron.daily/logrotate文件,logrotate一般是隨linux按安裝的。它會執行這個命令-“/etc/sbin/logrotate /etc/logrotate.conf”(注意空格)
- /etc/logrotate.conf 包含了/etc/logrotate.d目錄下的所有腳本
- 這個會觸發上一步你寫的/etc/logrotate.d/tomcate文件
手動執行logrotate
執行以下語句來手動運行cron任務
# /usr/sbin/logrotate /etc/logrotate.conf
logrotate的更多操作
man logrotate
阿里雲日誌切割
- 執行命令
# cat >/etc/logrotate.d/tomcat <<EOF
/home/admin/taobao-tomcat-production-7.0.59.3/logs/catalina.out {
daily
rotate 7
dateext
dateformat .%Y-%m-%d
notifempty
missingok
copytruncate
}
EOF
2.手動觸發
# logrotate -f /etc/logrotate.d/tomcat