Logrotate 不删除旧日志

Logrotate 不删除旧日志

我使用以下设置来归档和删除日志:

/path/to/logs/*.log {
    daily
    missingok
    compress
    rotate 4
    nodateext
    nocreate
    maxage 14

}

我的日志位置的日志如下所示:

-rwxrwxrwx 1 nobody nobody 21635 Sep 26 13:09 audit-2016.09.26.log

然后将其旋转和压缩,如下所示:

-rwxrwxrwx 1 nobody  nobody    180485 Sep 10 03:41 audit-2016.09.26.log.1.gz

我遇到的问题是,每晚归档日志后,14 天后日志不会被删除(正如 maxage 指令应该做的那样)。

有谁知道为什么会发生这种情况或者我应该在 logrotate 配置中更改什么?

谢谢!

答案1

来自 logrotate 手册页:

最大数量

删除超过几天的轮换日志。仅当要轮换日志文件时才会检查年龄。

audit-2016.09.26.log只创建了一次,再也没有创建过。所以它永远不会再旋转。

实际上是您的审核日志文件已经轮换了。看起来您只想压缩它们并删除旧文件。我不知道 logrotate 是否可以实现这一点。您可以将后旋转脚本添加到原始规则中,例如:

       postrotate
           find /path/to/logs -name "*.log.1.gz" -mtime +14 -delete
       endscript

相关内容