Logrotation不适用于nginx

我正在尝试使用Logrotate旋转nginx日志。它将日志附加到同一个文件(error.log和access.log),但不是每天都在旋转。 下面是相同的configuration文件。 请让我知道如果我失去了什么。

/var/log/nginx/*.log { daily missingok rotate 52 compress delaycompress notifempty create 640 nginx adm sharedscripts postrotate [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` endscript } 

$ more /etc/cron.daily/logrotate

 #!/bin/sh /usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1 EXITVALUE=$? if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]" fi exit 0 

SELinux状态

 # sestatus SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: enforcing Policy version: 24 Policy from config file: targeted 

你确定你不错过“猫”命令的周围吗? 根据: http : //drumcoder.co.uk/blog/2012/feb/03/nginx-and-logrotate/

你也可以看看/var/log/audit/audit.log关于“nginx”的内容,审计系统auditd默认启动。 如果auditd守护进程没有运行,那么消息被写入/ var / log / messages,所以在那里检查。

也是检查nginx.pid的path是否正确。 你可能在/ usr / local / nginx或/ opt或类似的东西中有nginx。

还请检查您的磁盘空间。 在虚拟机上的日志轮换不工作的时候,我遇到了一种情况,而我在/ var / log / messages中看到的唯一错误是“ALERT通常退出了[1]”。 问题是我有很less的磁盘空间剩余,它可能无法压缩我的日志文件。 我清理了一遍,又开始工作了。