logrotate-日誌切割示例

logrotate是linux系統自帶的工具,它能夠自動對日誌進行截斷(或輪循)、壓縮以及刪除舊的日誌文件。node

1)配置文件示例
# cat /wls/wls81/bin/weblogic
/wls/applogs/rtlog/bloan-onlineWIIServer16780/bloan-onlineWIIServer16780.out
{
rotate 7       # 日誌保留7天,自動刪除
daily          # 天天輪詢,weekly每週輪詢,monthly每個月輪詢
copytruncate   # 用於還在打開中的日誌文件,把當前日誌備份並截斷,開始輪替
compress       # 啓用壓縮,指的是輪替後的舊日誌,這裏默認用的是gzip壓縮的
notifempty     # 若是日誌文件爲空,輪循不會進行(不切割空文件)。
missingok      # 在日誌輪循期間,任何錯誤將被忽略,例如「文件沒法找到」之類的錯誤。
dateext        # 輪替的日誌文件會附加上一個短橫線和YYYYMMDD格式的時間戳
}linux


2)計劃任務
59 23 * * * /usr/sbin/logrotate -fv /wls/wls81/bin/weblogicweb


按日誌文件大小切換參數 size
把天天輪詢參數去掉,而後定義size參數
size 100Mapp


3)總結
3.1 測試切割,在驗證配置文件是否按需求切割時,必需要帶參數-f 測試,強制切割
好比,直接命令運行計劃任務,查看切割結果
$ /usr/sbin/logrotate -f /wls/wls81/bin/weblogic
$ ls /wls/applogs/rtlog/bloan-onlineWIIServer16780/
bloan-onlineWIIServer16780.out20171205.gz   --切割後的日誌工具

3.2 若是咱們把配置文件放在默認位置[/etc/logrotate.d/],則默認切割時間點爲凌晨3點。
這個時間不能夠更改的(嘗試修改/etc/logrotate.conf默認配置,也沒法生效)
因此,咱們要指定時間切割的話,必須把配置文件放在其餘位置,而後配合crontab任務實現按期切割。post


經常使用參數
compress          經過gzip壓縮轉儲之後的日誌
nocompress        不壓縮
copytruncate      用於還在打開中的日誌文件,把當前日誌備份並截斷
nocopytruncate    備份日誌文件可是不截斷
nocreate          不創建新的日誌文件
delaycompress     和 compress 一塊兒使用時,轉儲的日誌文件到下一次轉儲時才壓縮
nodelaycompress   覆蓋 delaycompress 選項,轉儲同時壓縮。
errors address    專儲時的錯誤信息發送到指定的Email 地址
ifempty           即便是空文件也轉儲,這個是 logrotate 的缺省選項。
notifempty        若是是空文件的話,不轉儲
mail address      把轉儲的日誌文件發送到指定的E-mail 地址
nomail            轉儲時不發送日誌文件
olddir directory  轉儲後的日誌文件放入指定的目錄,必須和當前日誌文件在同一個文件系統
noolddir          轉儲後的日誌文件和當前日誌文件放在同一個目錄下
prerotate/endscript    在轉儲之前須要執行的命令能夠放入這個對,這兩個關鍵字必須單獨成行
postrotate/endscript   在轉儲之後須要執行的命令能夠放入這個對,這兩個關鍵字必須單獨成行
daily/weekly/monthly   指定轉儲週期爲天天,每週,每個月
rotate count      指定日誌文件刪除以前轉儲的次數,0 指沒有備份,7指保留7個備份
tabootext [+] list 讓logrotate     不轉儲指定擴展名的文件,缺省的擴展名是:.rpm-orig, .rpmsave, v, 和 ~
size size         當日志文件到達指定的大小時才轉儲,bytes(缺省)及KB(sizek)或MB(sizem)測試

相關文章
相關標籤/搜索