为什么 logrotate maxsize 条件不起作用?

为什么 logrotate maxsize 条件不起作用?

我有一个特定的问题,logrotate 在达到 maxsize 设置的限制之前就旋转了

logrotate version - 3.8.6

我有一个自定义的 logrotate 文件

/var/web/log/access_log
{
    rotate 40
    maxsize 200M
    missingok
    compress
}

并且在 crontab 中设置了 logrotate 而不使用 -f 并且几乎每小时轮换日志,尽管它没有达到下面列出的最大大小(日志以几 MB 的大小轮换):

 95642 Sep  8 08:29 access_log.2020-09-08_08.gz
 86705 Sep  8 09:29 access_log.2020-09-08_09.gz
 70344 Sep  8 09:59 access_log.2020-09-08_10.gz
 86491 Sep  8 10:59 access_log.2020-09-08_11.gz
117124 Sep  8 11:59 access_log.2020-09-08_12.gz
106386 Sep  8 12:59 access_log.2020-09-08_13.gz
113683 Sep  8 13:59 access_log.2020-09-08_14.gz
104494 Sep  8 15:29 access_log.2020-09-08_15.gz
 99380 Sep  8 17:00 access_log.2020-09-08_17.gz
 87250 Sep  8 19:30 access_log.2020-09-08_19.gz

现在:

8632827 Sep  9 12:56 access_log

输出:

empty log files are rotated, log files >= 209715200 are rotated earlier, old logs are removed
considering log /var/web/log/access_log
  log needs rotating

... Sep  9 13:00 access_log.2020-09-09_13.gz

有人能告诉我哪里出了问题吗?为什么日志在大小限制之前就轮换了?谢谢

答案1

在 logrotate 手册页中没有“maxsize”选项,只有“size”和“minsize”。

在此处输入图片描述

在此处输入图片描述

https://linux.die.net/man/8/logrotate

如果您将“maxsize”更改为“size”,我相信它会起作用!

相关内容