程式在運作的時候為了了解運作狀态,會輸出日志檔案,時間久了日志檔案會變得非常大。
1、 logrotate簡介:
強大的系統軟體,對日志檔案有着一套完整的操作模式。
例如:轉儲
把舊的日志檔案删除,并建立新的日志檔案。
可以根據日志檔案的大小,也可以根據其天數來轉儲,這個過程一般通過 cron 程式來執行。
預設logrotate加到cron(/etc/cron.daily/logrotate)作為每日任務執行。
通過讓使用者來配置規則的方式,檢測和處理日志檔案。
并且可以配合Cron處理定時任務。
預制了大量判斷條件和處理方式。
等等。
2、 安裝logrotate
sudo yum install -y logrotate
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SMjRzMzAjM3ATM1EjZ2gDO1UTO5MTZ5EDNyUWZ1gjYy8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
3、logrotate組成
/usr/sbin/logrotate程式所在位置。
/etc/cron.daily/logrotate 預設讓Cron每天執行logrotate一次。
/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下面。
/etc/logrotate.d/應用自己的配置檔案存放目錄,覆寫全局配置。
注意:
為了友善管理我們一般把配置檔案放在/etc/logrotate.conf下面。
3、運作機制:
系統會定時運作logrotate,系統是按天執行的。
crontab會每天定時執行/etc/cron.daily/logrotate腳本。
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
}
配置檔案參數解釋:
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
每天自動幫我們分隔日志并進行打包。
歡迎大家給予寶貴的意見或者建議。
歡迎大家補充或者共享一些其他的方法。
感謝支援。