仅使用大小选项的 logrotate 不会旋转。这是在 Alpine docker 容器内

仅使用大小选项的 logrotate 不会旋转。这是在 Alpine docker 容器内

我有以下访问日志配置

cat /etc/logrotate.d/logrotate_nginx.conf
/nginx/access/logs/*.log {
  rotate 2
  size 1k
  missingok
  compress
  notifempty
  copytruncate
}

没有时间间隔配置。

这应该意味着它在达到 1 KiloByte 后会在“/nginx/access/logs/”处轮换日志,对吧?

但这是现在的日志轮换

/ # ls -l /nginx/access/logs/
total 8
-rw-r--r--    1 root     root          1264 Jun 24 11:17 nginx-access.log
-rw-r--r--    1 root     root          1292 Jun 24 11:17 nginx-access_withbody.log
-rw-r--r--    1 root     root             0 Jun 24 11:16 nginx-error.log

这是 logrotate.status

/ # cat /var/lib/logrotate.status
logrotate state -- version 2
"/var/log/acpid.log" 2019-6-24-11:0:0
"/mnt/mesos/sandbox/logs/nginx-error.log" 2019-6-24-11:0:0
"/mnt/mesos/sandbox/logs/nginx-access.log" 2019-6-24-11:0:0
"/mnt/mesos/sandbox/logs/nginx-access_withbody.log" 2019-6-24-11:0:0

我想知道为什么它不旋转。如果问题出在conf上。根据文件

尺寸 尺寸

这个选项是相互的
与时间间隔选项互斥,并且它会导致日志
如果在时间条件之后指定,则要轮换的文件不考虑上次轮换时间

答案1

logrotate.status您包含的文件来看,日志上次轮换似乎是在 11:00,并且从目录列表中可以看到文件是在那之后更新的。

这可能意味着logrotate作业每小时运行一次。当日志轮换作业再次运行或手动运行时,您的日志应该轮换。

答案2

在 Alpine Linux 中,cron 默认情况下不启动。因此,任何文件夹中的作业都不会被执行。解决方案是启动 croncrond

相关内容