Linux

在 Debian 伺服器上輪換郵件日誌

  • January 11, 2015

Debian 系統上的郵件日誌不使用正常的 /etc/logrotate.d 腳本來輪換它們。

我想強制我的郵件日誌每天輪換(無論多麼小),並壓縮結果,以便日誌文件的編號與我的其他(更繁忙的)郵件伺服器的編號相匹配。本質上,我想結束:

mail.log mail.log.0 mail.log.1.gz mail.log.2.gz … mail.log.6.gz

有人能告訴我如何做到這一點嗎?

我假設目前您已經安裝了庫存 sysklogd,並且您的日誌文件使用預設的 /etc/cron.weekly/sysklogd 腳本進行輪換。

我建議您編輯 /etc/cron.weekly/sysklogd 腳本並修改:

logs=$(syslogd-listfiles --weekly)

到:

logs=$(syslogd-listfiles --weekly -s mail\*)

這將阻止預設腳本處理郵件日誌。

編輯 /etc/logrotate.d/sendmail 並為相應的文件添加條目。你可能想要這樣的東西:

/var/log/mail.log /var/log/mail.info /var/log/mail.warn /var/log/mail.err {
       rotate 7
       daily
       compress
       delaycompress
       missingok
       create 640 root adm
       sharedscripts
       postrotate
          /etc/init.d/sysklogd reload
       endscript
}

要檢查您的配置,請執行:

logrotate -d /etc/logrotate.conf

並驗證 logrotate 正在做你想做的事。

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