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正在做你想做的。