這裏小白使用CentOS6U5自帶的logrotate程序來解決catalina.out的日誌輪轉問題。這種方式比較簡單。在/etc/logrotate.d/目錄下新建一個名爲tomcat的文件apache
cat >/etc/logrotate.d/tomcat <<EOF /usr/local/apache-tomcat-8.0.28/logs/catalina.out{ copytruncate daily rotate 7 missingok compress size 16M } EOF以上的配置說明:tomcat
/usr/local/apache-tomcat-8.0.28/logs/catalina.out{ # 要輪轉的文件 copytruncate # 建立新的catalina.out副本後,截斷源catalina.out文件 daily # 天天進行catalina.out文件的輪轉 rotate 7 # 至多保留7個副本 missingok # 若是要輪轉的文件丟失了,繼續輪轉而不報錯 compress # 使用壓縮的方式(很是有用,節省硬盤空間;一個2~3GB的日誌文件能夠壓縮成60MB左右) size 16M # 當catalina.out文件大於16MB時,就輪轉 }以上是如何工做的呢?spa
天天晚上crond守護進程會運行在/etc/cron.daily目錄中的任務列表;命令行
與logrotate相關的腳本也在/etc/cron.daily目錄中。運行的方式爲"/usr/bin/logrotate /etc/logrotate.conf";日誌
/etc/logrotate.conf文件include了/etc/logrotate.d/目錄下的全部文件。還包括咱們上面剛建立的tomcat文件;code
/etc/logrotate.d/tomcat文件會觸發/usr/local/apache-tomcat-8.0.28/logs/catalina.out文件的輪轉。進程
以上是程序自動完成的,不須要咱們干預。固然了,咱們也可使用手工的方式進行logrotate程序。在命令行進行以下運行:ci
1table
logrotate
/etc/logrotate
.conf
配置或者只輪轉剛剛的tomcat配置文件,能夠這樣運行:
1
logrotate --force
/etc/logrotate
.d
/tomcat
要想得到logrotate程序的更多幫助信息,能夠查看其man page,
1
man
logrotate
能夠看一下catalina.out輪轉先後的文件大小,
輪轉以前:
1
2
3
4
du
-sh *
...
2.0G catalina.out
# 未輪轉以前的文件大小
...
輪轉以後的文件大小:
1
2
3
# du -sh catalina.out*
2.0M catalina.out
60M catalina.out.1.gz
# 輪轉以後,進行壓縮,日誌文件變得更小了
另外在Tomcat的logs目錄,天天都會產生不少日誌文件,咱們也能夠按期手工或使用定時任務來刪除7天前的日誌文件,這裏使用手工的方式進行演示,
1
2
cd
/usr/local/apache-tomcat-8
.0.28
/logs
find
-mtime +7 -
exec
rm
-f {} \;
好了,就到這裏了。但願能夠幫到有須要的童鞋。