天天看點

centos7 tomcat_雜集:centos7中利用logrotate工具切割tomcat日志

程式在運作的時候為了了解運作狀态,會輸出日志檔案,時間久了日志檔案會變得非常大。

1、 logrotate簡介:

強大的系統軟體,對日志檔案有着一套完整的操作模式。

例如:轉儲

把舊的日志檔案删除,并建立新的日志檔案。

可以根據日志檔案的大小,也可以根據其天數來轉儲,這個過程一般通過 cron 程式來執行。

預設logrotate加到cron(/etc/cron.daily/logrotate)作為每日任務執行。

通過讓使用者來配置規則的方式,檢測和處理日志檔案。

并且可以配合Cron處理定時任務。

預制了大量判斷條件和處理方式。

等等。

2、 安裝logrotate

sudo yum install -y logrotate

centos7 tomcat_雜集:centos7中利用logrotate工具切割tomcat日志

3、logrotate組成

/usr/sbin/logrotate程式所在位置。

centos7 tomcat_雜集:centos7中利用logrotate工具切割tomcat日志

/etc/cron.daily/logrotate 預設讓Cron每天執行logrotate一次。

centos7 tomcat_雜集:centos7中利用logrotate工具切割tomcat日志

/etc/logrotate.conf全局配置檔案。

參數解釋:

第3行:weekly指定所有的日志檔案每周轉儲一次。

第6行:rotate 4指定轉儲檔案的保留4份。

第9行:create指定logrotate自動建立新的日志檔案,新的日志檔案具有和

原來的檔案一樣的權限。

第12行:dateext指定檔案字尾是日期格式。

第18行:include選項允許系統管理者把分散到幾個檔案的轉儲資訊,集中到一個

主要的配置檔案。當 logrotate從logrotate.conf讀到include 選項時,會從指定檔案讀入配置資訊。

注意:

include 選項十分重要,一些應用把日志轉儲參數存放在/etc/logrotate.d。

系統管理者也隻需要管理/etc/logrotate.conf下面檔案就OK了。

如下:我們的tomcat會放在/etc/logrotate.d下面。

centos7 tomcat_雜集:centos7中利用logrotate工具切割tomcat日志

/etc/logrotate.d/應用自己的配置檔案存放目錄,覆寫全局配置。

注意:

為了友善管理我們一般把配置檔案放在/etc/logrotate.conf下面。

centos7 tomcat_雜集:centos7中利用logrotate工具切割tomcat日志

3、運作機制:

系統會定時運作logrotate,系統是按天執行的。

crontab會每天定時執行/etc/cron.daily/logrotate腳本。

centos7 tomcat_雜集:centos7中利用logrotate工具切割tomcat日志

4、配置對catalina.out日志切割檔案

注意:

放在/etc/logrotate.d下。

sudo vim /etc/logrotate.d/tomcat

寫入:

/home/odysee/General/tomcat8.5/logs/catalina.out{

daily

copytruncate

rotate 30

compress

notifempty

dateext

missingok

}

centos7 tomcat_雜集:centos7中利用logrotate工具切割tomcat日志

配置檔案參數解釋:

daily 表示每天整理一次

rotate 5 指定日志檔案删除之前轉儲次數,0沒有備份,5保留5個備份

dateext 檔案字尾是日期格式

copytruncate 用于還在打開中的日志檔案,把目前日志備份并截斷

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

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

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

#size 5M 當catalina.out大于5M就進行切割

5、 測試

One、調試(d = debug)參數為配置檔案,不指定則執行全局配置檔案

logrotate -d /etc/logrotate.d/tomcat.conf

Two、強制執行(-f = force),可配合-v(-v =verbose)使用,注意調試資訊預設攜帶-v

logrotate -v -f /etc/logrotate.d/tomcat.conf

立即截斷日志:

sudo logrotate -v -f /etc/logrotate.d/tomcat

centos7 tomcat_雜集:centos7中利用logrotate工具切割tomcat日志

每天自動幫我們分隔日志并進行打包。

歡迎大家給予寶貴的意見或者建議。

歡迎大家補充或者共享一些其他的方法。

感謝支援。