在Debian服务器上旋转邮件日志

Debian系统上的邮件日志不使用常规的/etc/logrotate.d脚本来旋转它们。

我想强制我的邮件日志每天轮换(不pipe多小),并压缩结果,以便日志文件的编号与我其他(繁忙)邮件服务器的编号相匹配。 本质上,我想最终:

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

有人能告诉我如何做到这一点?

我假设目前你有stock sysklogd安装,并且你的日志文件是用默认的/etc/cron.weekly/sysklogd脚本进行轮换的。

我build议你编辑/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 } 

要检查您的configuration,请运行:

 logrotate -d /etc/logrotate.conf 

并validationlogrotate正在做你想做的。