我正在尝试使用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的磁盘空间剩余,它可能无法压缩我的日志文件。 我清理了一遍,又开始工作了。