logrotate 删除所有超过一天的邮件日志

logrotate 删除所有超过一天的邮件日志

我只看到两个文件maillogmaillog.1/var/log

grepping目录中的 mailloglogrotate.d给出了三个提及的文件maillog

系统日志

/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {
#/var/log/messages /var/log/secure /var/log/spooler /var/log/boot.log /var/log/cron {
        daily
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

系统日志工具

/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron /var/log/kern.log /var/log/kern {
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

和邮件日志。

/var/log/maillog  {
    daily
    compress
#    rotate 365
    rotate 14 
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

我是新手,logrotate所以可能我忽略了一些显而易见的东西。问题可能是什么?当我开始管理服务器时,设置已经完成,所以我也不知道为什么 logrotate 中有 3 条关于 maillog 的提及。

答案1

  • 第一个是默认创建的。
  • 第二个是在安装时创建的syslog-ng
  • 以前的系统管理员手动创建了第三个(可能)。

您正在运行哪个系统日志服务?

ps -ef | grep syslog

更新

由于您使用的是syslog-ng,所有postrotate脚本都是错误的,请将其更改为如下内容:

postrotate
    /bin/kill -HUP `cat /opt/syslog-ng/var/run/syslog-ng.pid 2> /dev/null` 2> /dev/null || true
endscript

然后在调试模式下运行(不会对日志进行任何更改)以查看会发生什么:

logrotate -d -f /etc/logrotate.d/syslog-ng

相关内容