【问题标题】:Logrotate using maxage only仅使用 maxage 进行 Logrotate
【发布时间】:2020-02-18 15:21:27
【问题描述】:

我正在尝试设置一个相当简单的 logrotate,据我所知,它应该支持此处提到的 maxage 选项 (https://linux.die.net/man/8/logrotate)。我的man logrotate 下也提到了它。 我正在运行logrotate 3.8.6

所以我想根据年龄进行简单的旋转,而不是使用旋转计数器。我看到很多例子,人们同时使用旋转和最大化。但是从我对这个人的理解来看,只使用 maxage 应该不是不可能的。

基本上,我有这样一种情况,即我在给定日志文件的每一天都有多次轮换,所以我无法以任何方式预测轮换计数。并且将其设置为一个巨大的超大数字是一个主要的性能损失,以及使用 -v 调试的痛苦。

因此,只是希望将所有日志文件保留在 X 天期间,这可能是几年的相当大的窗口。

有什么想法吗?

【问题讨论】:

    标签: logrotate


    【解决方案1】:

    根据手册页:

    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.
    

    如果您不设置此值,则默认为零,这意味着它会删除它轮换出的所有内容。您可以从调试转储中看到这一点,首先使用我现有的配置(旋转 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 不再考虑它们。这样,您的配置就会变得简单得多。

    【讨论】:

      猜你喜欢
      • 2016-06-23
      • 2018-01-05
      • 2020-05-19
      • 2015-03-21
      • 2019-04-14
      • 1970-01-01
      • 2014-02-12
      • 1970-01-01
      • 2019-09-13
      相关资源
      最近更新 更多