程序在運行的時候為了了解運行狀態(tài),會輸出日志文件,時間久了日志文件會變得非常大。
1、 logrotate簡介:
強大的系統(tǒng)軟件,對日志文件有著一套完整的操作模式。
例如:轉(zhuǎn)儲
把舊的日志文件刪除,并創(chuàng)建新的日志文件。
可以根據(jù)日志文件的大小,也可以根據(jù)其天數(shù)來轉(zhuǎn)儲,這個過程一般通過 cron 程序來執(zhí)行。
默認logrotate加到cron(/etc/cron.daily/logrotate)作為每日任務(wù)執(zhí)行。
通過讓用戶來配置規(guī)則的方式,檢測和處理日志文件。
并且可以配合Cron處理定時任務(wù)。
預(yù)制了大量判斷條件和處理方式。
等等。
2、 安裝logrotate
sudo yum install -y logrotate

3、logrotate組成
/usr/sbin/logrotate程序所在位置。

/etc/cron.daily/logrotate 默認讓Cron每天執(zhí)行l(wèi)ogrotate一次。

/etc/logrotate.conf全局配置文件。
參數(shù)解釋:
第3行:weekly指定所有的日志文件每周轉(zhuǎn)儲一次。
第6行:rotate 4指定轉(zhuǎn)儲文件的保留4份。
第9行:create指定logrotate自動建立新的日志文件,新的日志文件具有和
原來的文件一樣的權(quán)限。
第12行:dateext指定文件后綴是日期格式。
第18行:include選項允許系統(tǒng)管理員把分散到幾個文件的轉(zhuǎn)儲信息,集中到一個
主要的配置文件。當 logrotate從logrotate.conf讀到include 選項時,會從指定文件讀入配置信息。
注意:
include 選項十分重要,一些應(yīng)用把日志轉(zhuǎn)儲參數(shù)存放在/etc/logrotate.d。
系統(tǒng)管理員也只需要管理/etc/logrotate.conf下面文件就OK了。
如下:我們的Tomcat會放在/etc/logrotate.d下面。

/etc/logrotate.d/應(yīng)用自己的配置文件存放目錄,覆蓋全局配置。
注意:
為了方便管理我們一般把配置文件放在/etc/logrotate.conf下面。

3、運行機制:
系統(tǒng)會定時運行l(wèi)ogrotate,系統(tǒng)是按天執(zhí)行的。
crontab會每天定時執(zhí)行/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
}

配置文件參數(shù)解釋:
daily 表示每天整理一次
rotate 5 指定日志文件刪除之前轉(zhuǎn)儲次數(shù),0沒有備份,5保留5個備份
dateext 文件后綴是日期格式
copytruncate 用于還在打開中的日志文件,把當前日志備份并截斷
compress 通過gzip壓縮轉(zhuǎn)儲以后的日志(gzip -d xxx.gz解壓)
missingok 如果日志不存在則忽略該警告信息
notifempty 如果是空文件的話,不轉(zhuǎn)儲
#size 5M 當catalina.out大于5M就進行切割
5、 測試
One、調(diào)試(d = debug)參數(shù)為配置文件,不指定則執(zhí)行全局配置文件
logrotate -d /etc/logrotate.d/tomcat.conf
Two、強制執(zhí)行(-f = force),可配合-v(-v =verbose)使用,注意調(diào)試信息默認攜帶-v
logrotate -v -f /etc/logrotate.d/tomcat.conf
立即截斷日志:
sudo logrotate -v -f /etc/logrotate.d/tomcat

每天自動幫我們分隔日志并進行打包。
歡迎大家給予寶貴的意見或者建議。
歡迎大家補充或者共享一些其他的方法。
感謝支持。