我有一台从网络收集系统日志消息的服务器。Logrotate 当前已设置并运行,其配置如下:
/logs/*/log {
daily
rotate 60
}
我希望每周轮换一次,而不是每天轮换一次。显然,我要保留 60 天的日志,所以我可能会将 更改为rotate 60
,rotate 8
这样就可以保留 8 周的日志。
我的问题是:
- 如果我从每日改为每周并保留 8 条日志,那么当 logrotate 运行时,它会删除最旧的 52 条每日日志吗?或者它是否足够智能,能够注意到文件上的日期戳,并意识到 8 周的时间是 2 个月前?
- 如果我使用标志手动运行 logrotate
-f
来强制旋转,并且我这样做了 8 次,我是否能有效地完全擦除所有日志? - 如果我进入
logrotate.status
文件并手动删除一个特定日志,那么下次运行 logrotate 时该特定日志会发生什么?
答案1
- 如果您更改日志数量,则下次运行时 logrotate 将确保最多保留这么多日志。该数量不一定与天数相关(如果配置正确,您可以每小时运行一次 logrotate)。
- 是的,除非您有该
notifempty
设置(我确实推荐)。 - 就像您在删除日志后将其重新添加到配置中一样。它将轮换日志,因为它不知道之前何时可能已经轮换过日志,并且它将根据第 1 点保留所需数量的日志。