解決Tomcat日誌文件catalina.out文件過大問題

這裏小白使用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

  1. 天天晚上crond守護進程會運行在/etc/cron.daily目錄中的任務列表;命令行

  2. 與logrotate相關的腳本也在/etc/cron.daily目錄中。運行的方式爲"/usr/bin/logrotate /etc/logrotate.conf";日誌

  3. /etc/logrotate.conf文件include了/etc/logrotate.d/目錄下的全部文件。還包括咱們上面剛建立的tomcat文件;code

  4. /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 {} \;

 

好了,就到這裏了。但願能夠幫到有須要的童鞋。

相關文章
相關標籤/搜索