按大小对数旋转-我需要更改cron吗?


10

我当前的logrotate配置如下所示(使用logrotate 3.8.7)

"/var/log/haproxy.log" {
  daily
  size 250M
  rotate 1
  create 644 root root
  missingok
  compress
  notifempty
  copytruncate
}

它每天成功运行一次,但是当大小超过250M时不会旋转。因此,无论大小如何,它都会一直等到一天结束为止。

我读到有maxsize选项,更改size 250Mmaxsize 250M它仍然不起作用。

我是否需要设置cron每小时运行一次logrotate,还是因为正在侦听该文件大小而使logrotate自动运行,而我又出错了?

Answers:


7

是的,您需要logrotate每天运行多次以实现此目的。在手册页logrotate(8)的第二段中对此进行了回答:

通常,它logrotate是日常cron工作。除非该日志的标准基于日志的大小并且logrotate每天要运行多次,或者除非使用-f--force选项,否则它不会在一天内多次修改日志。

如果您希望logrotate每小时运行一次而不是每天运行一次,则可以将其移动:

mv /etc/cron.daily/logrotate /etc/cron.hourly

从3.8.1开始出现了maxsizesize和之间的区别在maxsize这里描述:

maxsize 尺寸

当他们长大大于大小字节甚至另外指定的时间间隔之前(日志文件被旋转dailyweeklymonthly,或yearly)。size除了与时间间隔选项互斥外,相关选项与之类似,并且使日志文件轮换而不考虑最后的轮换时间。当 maxsize被使用,无论是大小和日志文件的时间戳被考虑。

这将使两者都适合您的使用:size没有任何间隔,maxsize如果需要也有间隔。但是,这不会改变默认情况下logrotate每天只运行一次的事实。该间隔最适合大多数时间,因为在大多数情况下,日志增长所需的时间比一天要长得多250M


1
FYI有一个最大范围的指令,从8.1开始:hpux.connect.org.uk/hpux/Sysadmin/logrotate-3.8.7/...
Hommer史密斯

感谢您注意到我正在阅读手册的古老版本@HommerSmith!我相应地更正了我的答案。
伊萨·乔金宁
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.