我使用以下设置来归档和删除日志:
/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