我有以下访问日志配置
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