Rsyslog

限制系統日誌輪換中可用存檔的數量

  • July 28, 2021

我的/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將系統日誌文件大小限制為 1MB。因此,當 syslog 達到 1MB 時,它應該自行旋轉(尚未測試)

auth,authpriv.*    -/var/log/auth.log
$outchannel mysyslog,/var/log/syslog,1048576
*.*;auth,authpriv.none  :omfile:$mysyslog

當文件達到“大小 100k”時,logrotate 不會觸發輪換它通過計劃檢查執行。

解釋配置的第一部分如何工作。每天檢查 /var/log/syslog,如果大於 100k 則旋轉它,如果有 4 個副本最早刪除。

您可以在配置文件中將每天更改為每小時。然後, cp /etc/cron.daily/logrotate /etc/cron.hourly/logrotate 如果它不存在的話。

引用自:https://serverfault.com/questions/1070904