Linux
在 Debian 伺服器上輪換郵件日誌
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 正在做你想做的事。