在 Debian 服务器上轮换邮件日志

在 Debian 服务器上轮换邮件日志

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

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

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

有人能告诉我如何实现这个吗?

答案1

我假设您目前拥有库存 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 是否正在执行您想要的操作。

相关内容