logrotate - 仅使用 maxage 进行 Logrotate
问题描述
我正在尝试设置一个相当简单的 logrotate,据我所知,它应该支持maxage
此处提到的选项(https://linux.die.net/man/8/logrotate)。在我的man logrotate
. 我在跑步logrotate 3.8.6
。
所以我想根据年龄简单旋转而不使用旋转计数器。我看到很多例子,人们同时使用旋转和最大化。但是从我对这个人的理解来看,只使用 maxage 应该不是不可能的。
基本上我有这样的场景,我在给定日志文件的一天有多次轮换,所以我无法以任何方式预测轮换计数。并且将其设置为一个巨大的超大数字是对性能的主要影响,也是使用 -v 进行调试的痛苦。
因此,只是希望将所有日志文件保留在 X 天期间,这可能是几年的相当大的窗口。
有任何想法吗 ?
解决方案
根据手册页:
rotate *count*
Log files are rotated count times before being removed or mailed to the address specified
in a mail directive. If count is 0, old versions are removed rather than rotated. Default
is 0.
如果您未设置此值,则默认值为 0,这意味着它会删除它轮换出的所有内容。您可以从调试转储中看到这一点,首先使用我现有的配置(旋转 4):
rotating pattern: /var/log/boot.log
after 1 days (7 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/boot.log
log does not need rotating (log is empty)
rotating pattern: /var/log/chrony/*.log weekly **(4 rotations)**
与我评论该行并将其在任何地方未定义时相比:
rotating pattern: /var/log/boot.log
after 1 days (7 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/boot.log
log does not need rotating (log is empty)
rotating pattern: /var/log/chrony/*.log weekly **(no old logs will be kept)**
logrotate 的主要用途之一是管理日志占用的空间量;让它旋转到无穷大而不移除任何东西违背了这个目的。您也没有发布您的实际配置文件,所以我不知道您要针对哪些其他参数进行旋转。
如果您每天轮换多次,我的主要建议是定期将那些已经轮换的日志移出该目录,以便 logrotate 不再考虑它们。这样,您的配置就会变得简单得多。
推荐阅读
- javascript - 禁用公会 Discord JS COMMANDO 上的命令
- terraform - 如何在同一个`main.tf`中多次重用一个模块?
- php - cURL php 显示的结果与 chrome/firefox 不同
- python - 如何检查值是numpy数字还是python原语
- android - 考虑到 pdu 已创建为字符串时,如何从 pdu 对象创建 SmsMessage 尤其是在使用 WorkManager InputData 时
- python - 计算面板数据的历史平均值
- java - 如何在更改方法中使用用户选择
- python - 了解上下文中透视变换到目标点的输出?
- typescript - 导入时自动实例化 NativeScript 插件?
- c# - C# HttpClient 在字典字符串/对象中使用 FormUrlEncodedContent 对象发布内容