每天logrotate和大小?


40

如果使用“ size”和“ daily”参数指定了logrotate配置,哪个优先?这在哪里记录?我希望这些轮换以布尔OR操作的形式发生,即,如果日志是一天之久的,它们就会轮换,或者如果它们大于某个特定大小,它们也会轮换。但是,logrotate当前仅使用“ size”指令,并且似乎忽略了“ daily”指令。Logrotate设置为每小时运行一次。操作系统是linux,Red Hat和Debian的衍生产品。

另外,我首先指定“每日”,然后从文件开头指定“大小”。不确定顺序是否重要,但无论如何,必须首先在配置文件中...

谢谢!



>本地定义将覆盖全局定义,之后的定义>将覆盖 logrotate 3.8.7的联机帮助页中的先前定义
John Bob Joe

Answers:


61

如果大小使用指令,logrotate的会忽略每天每周每月每年的指令。当您执行man logrotate命令时,在文档中不清楚。但是,它可以在实践中得到确认,并在诸如此类的任意博客文章中提到。

有一个名为minsize的指令,根据logrotate手册页,它是唯一可以与时间指令一起使用的size指令。但是,它仍然不是您想要的。使用最小尺寸日常实际上是说:每日旋转日志,但当他们只是在尺寸至少#MB

到目前为止,我发现logrotate无法满足您的要求:每天旋转一次,除非大小超过#MB,在这种情况下,请立即旋转。我认为仅使用logrotate指令不支持此功能。有可能通过脚本挂钩指令就像一些聪明的脚本做prerotatepostrotatefirstactionlastaction

更新

从logrotate 3.8.1开始,maxsize并且timeperiod被一起支持,这将是理想的解决方案。请参阅此帖子的答案:除非日志超过一定大小,否则如何基于间隔轮换日志?


4
最好的选择可能是使用两个单独的cron命令,运行以默认的conf每天运行一次,每隔x分钟运行一次,该配置只使用您担心使用size指令溢出的文件进行配置,而不是每天执行一次。
SilverbackNet 2012年

8
从logrotate 3.81开始,maxsizetimeperiod受支持。每serverfault.com/questions/474941/...
belacqua

1
@belacqua我正在使用3.8.7,而timeperiod不在该人中。
JorgeeFG 2015年

正确的版本实际上是3.8.1,而不是3.81。
汤姆·米勒

2

根据我的logrotate经验,@ egg的第一个答案是错误的!

如果每天,每月,...第一次和后大小指令,每日,每月,...将被忽略,大小指令将适用于日志文件。

同样,当我第一次使用size指令,然后是每日,每周,每月和每年的指令时,size指令将被忽略。


1

如果添加“每日”,即使满足“大小”条件,它也会每天轮换。如果还添加大小条件,则一天之内可能会轮流两次旋转,具体取决于日志记录的详细程度。

如果“每日”在脚本中排在第一位,则“大小”可能不会触发。


使用verbose选项可以查看使用了哪些规则。根据我的测试,我相信仅使用最后一条规则,因为更具体的规则可以覆盖更通用的规则。
布拉姆

可以进行更多的旋转,因为这是预期的行为。(布尔值OR)但是,我的问题是这些旋转没有发生。这似乎是日志轮换的错误(可能是功能),因为我看不到指令的顺序很重要或在任何地方都有记录。
猫裤子2012年

您能否举一个logrotate.conf和要定位的文件的示例?除时间进程外,每日没有其他条件。大小是有条件的。
保罗·希科克斯

/tmp/output.log {每日大小1k旋转5}
猫裤子

1
大小大于1k时,此文件将旋转,但不会按预期和期望每天旋转。
猫裤子2012年

1

实际上,我在Red Hat上的手册页似乎非常清楚了size和minsize之间的区别:

最小尺寸

          Log  files  are rotated when they grow bigger then size bytes,
          but  not  before  the  additionally  specified  time  interval
          (daily,  weekly, monthly, or yearly).  The related size option
          is similar except that it is mutually exclusive with the  time
          interval  options, and it causes log files to be rotated with-
          out regard for the last rotation time.  When minsize is  used,
          both the size and timestamp of a log file are considered.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.