一.概要說明
logrotate工具是為了友善進行日志管理而産生的一個工具,主要可以完成的工作包含:基于天、周、月、檔案大小進行日志的滾動備份、壓縮、删除甚至是發送郵件。
二.調用方式
- 每天晚上,cron daemon會自動執行/etc/cron.daily目錄下的任務。
- 這個會觸發/etc/cron.daily/logrotate檔案,logrotate一般是随linux安裝的。
它會執行這個指令“/usr/sbin/logrotate/etc/logrotate.conf”。
- /etc/logrotate.conf 包含了/etc/logrotate.d目錄下的所有腳本。
- 這個會觸發自定義的/etc/logrotate.d/…檔案。
三. logrotate文法
logrotate [-dv][-f] [-s] config_file+
什麼都不跟則顯示版本資訊和簡單的幫助資訊,如果處理過程中出現異常則傳回非0的$?;
--? | 顯示幫助資訊 |
-v | 顯示詳細資訊 |
-d | 開啟調試模式并隐含開啟-v,不會對日志和logrotate的state檔案産生操作 |
-f | 忽略調用周期強制調用logrotate,友善測試 |
-m | 告知logrotate發送郵件的指令 |
-s | 多個logrotate運作時告知logrotate自己使用的state檔案(/var/lib/logrotate.status) |
config_file+ | 表示可以使用多個配置檔案(預設為/etc/logrotate.conf)在後面,最好是在一個配置檔案中進行引用(測試某條新的規則時可以單獨建立一個配置檔案并用-f參數進行強行調用) |
例: /usr/sbin/logrotate -vf/etc/logrotate.d/audit
四. logrotate配置目錄
日志配置目錄/etc/logrotate.d/…
logrotate預設配置目錄/etc/logrotate.conf
五. logrotate 參數說明
daily | 表示每天整理一次,其它可用值為‘weekly’、‘monthly’、‘yearly’ |
rotate 30 | 表示保留30份的備份檔案 |
dateext | 讓舊日志檔案以建立日期命名 |
compress nocompress | 通過gzip 壓縮轉儲以後的日志 不壓縮日志 |
delaycompress | 與compress一起用,轉儲的日志檔案到下一次轉儲時才壓縮 |
copytruncate | 表示先複制log檔案的内容,然後再清空 |
size 5M | 日志檔案大小增長到5MB再進行輪循。 |
notifempty | 如果日志檔案為空,輪循不會進行。 |
missingok | 在日志輪循期間,任何錯誤将被忽略,例如“檔案無法找到”之類的錯誤。 |
postrotate endscript | 在轉儲以後執行指令,postrotate和endscript裡面指定的指令将被執行。 在這種情況下,rsyslogd 程序将立即再次讀取其配置并繼續運作。 |
prerotate endscript | 在轉儲以前執行的指令 |
六. XenServer 日志切割
/etc/logratate.d/…
audit | audit.log |
syslog | messages |
secure | |
maillog | |
spooler | |
boot.log | |
cron |
audit具體配置:
/var/log/audit.log {
daily
rotate 30
dateext
compress
delaycompress
notifempty
missingok
sharedscripts
postrotate
/bin/kill -HUP `cat/var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
/bin/kill -HUP `cat/var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}
syslog具體配置:
/var/log/messages /var/log/secure /var/log/maillog/var/log/spooler /var/log/boot.log /var/log/cron {
daily
rotate 30
dateext
compress
delaycompress
missingok
notifempty
sharedscripts
postrotate
/bin/kill -HUP `cat/var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
/bin/kill -HUP `cat/var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}
七. Tomcat 日志切割
Tomcat日志配置路徑 /etc/logrotate.d/tomcat
Tomcat日志存儲路徑 /opt/tomcat7/logs/…
vim /etc/logrotate.d/tomcat
/opt/tomcat7/logs/catalina.out {
rotate 14
daily
copytruncate
compress
notifempty
missingok
}