![为什么 logrotate maxsize 条件不起作用?](https://linux22.com/image/1632369/%E4%B8%BA%E4%BB%80%E4%B9%88%20logrotate%20maxsize%20%E6%9D%A1%E4%BB%B6%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%EF%BC%9F.png)
我有一个特定的问题,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”,我相信它会起作用!