如何使用 Logrotate 保留 14 天的日志?

How Can I Keep 14 Days of Logs using Logrotate?

我想更改我的 logrotate.conf 文件以压缩和保存最近 14 天的系统日志文件。如果将这些设置放入我的配置文件中,这些设置是否有效?

  rotate 14
  compress
  extension log
  create 640 www-data users
}

你需要了解 logrotate 的每个参数的作用,对于 debian 你可以找到信息 here

这里你混淆了 rotate count 和 maxage,rotate count 指定日志文件在被删除或邮寄之前被旋转 count 次邮件指令中指定的地址。 例如

# sample logrotate configuration file
compress
/var/log/messages {
    rotate 5
    weekly
    postrotate
        /usr/bin/killall -HUP syslogd
    endscript
}

前几行设置全局选项;在示例中,日志在轮换后被压缩。配置文件的下一部分定义了如何处理日志文件 /var/log/messages。在被删除之前,日志将经过五周轮换

您要查找的选项是 maxage count

最大年龄

删除超过 count 天的轮换日志。只有在日志文件要轮换时才会检查年龄。如果配置了 maillast 和 mail,文件将邮寄到配置的地址。