我的/etc/logrotate.d/rsyslog
文件有以下配置。在其中,我明確聲明將旋轉的天數為 4,並且旋轉存檔文件的大小為 100k(對於/var/log/syslog
.
我想知道的是,當存檔達到 100k 時,它應該會自行旋轉。如果需要的話,一天內最多旋轉 4 次嗎?如果它需要旋轉 4 次,因為它連續達到 100k,它會這樣做並且只保存 4 個檔案嗎?也許我無法完全解釋我的問題,但我正在尋找的目標是,一旦旋轉的存檔文件達到 100k,它應該自行旋轉,並且旋轉的總數不應超過 4 個文件因此,如果一個小時內需要 8 次輪換,則應該僅存在最後 4 次輪換的存檔。I do see a daily configuration, not sure if that is complemented with the rotate configuration?
如果我需要設定存檔檔案的最大數量,而日期輪換配置無法做到這一點,我需要做什麼?
/var/log/syslog
{
rotate 4
size 100k
daily
missingok
notifempty
delaycompress
compress
postrotate
invoke-rc.d rsyslog rotate >/dev/null
endscript
}
/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/rsyslog.log
/var/log/debug
/var/log/messages
{
rotate 4
weekly
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
invoke-rc.d rsyslog rotate >/dev/null
endscript
}
我也有這個syslog configuration
限制 syslog 檔案大小為 1MB。因此,當 syslog 達到 1MB 時,它應該自行旋轉(尚未測試)
auth,authpriv.* -/var/log/auth.log
$outchannel mysyslog,/var/log/syslog,1048576
*.*;auth,authpriv.none :omfile:$mysyslog
答案1
當檔案達到「大小 100k」時,logrotate 不會觸發輪換,它會透過計畫檢查進行操作。
解釋配置的第一部分如何運作。每天檢查 /var/log/syslog,如果大於 100k,則進行輪換,如果有 4 個副本,則刪除最早的副本。
您可以在設定檔中將每日變更為每小時。然後,cp /etc/cron.daily/logrotate /etc/cron.hourly/logrotate(如果尚不存在)。