Bre*_*nt 2 linux debian log-files
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)
Run Code Online (Sandbox Code Playgroud)
到:
logs=$(syslogd-listfiles --weekly -s mail\*)
Run Code Online (Sandbox Code Playgroud)
这将阻止默认脚本处理邮件日志。
编辑 /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
}
Run Code Online (Sandbox Code Playgroud)
要检查您的配置,请运行:
logrotate -d /etc/logrotate.conf
Run Code Online (Sandbox Code Playgroud)
并验证 logrotate 正在执行您想要的操作。