nginx日志每周轮转失败,我怎么确定为什么?

在我安装了nginx之后,它的日志每周周转一周,周日00:00

然而本周日志未能旋转,我不知道为什么。

我能想到的唯一影响就是我做了一个apt-get升级。 这很顺利,只有一个configuration文件需要手动合并。

我找不到任何logrotate本身的日志。 看起来好像我期望在/ var / syslog中看到logrotate cron作业的内容,但是没有任何内容(曾经)。

其次,logrotate似乎已经正确configuration了nginx。 有一个nginxconfiguration文件,在logrotate.d中看起来不错

logrotate cron作业也在/etc/cron.daily中

感谢任何帮助 – 寻找之前可能已经工作,但突然停止,或从哪里寻找从cron或logrotate本身的任何额外的日志logging输出的原因。

使用-v选项手动调用logrotate可能会更清楚地说明发生了什么事情,请注意这可能是一种破坏性操作,具体取决于哪些日志被旋转。

除此之外,很难说日志中什么都没有:使用df检查磁盘空间/空闲inode可能会有所帮助,检查dmesg可能会指示磁盘是否发生故障。

您可以通过在debugging模式下运行来testing特定文件的错误;

 /usr/sbin/logrotate -d /etc/logrotate.d/nginx 

您也可以强制logrotate通过特定的文件运行

 /usr/sbin/logrotate -f /etc/logrotate.d/nginx 

在大多数情况下 – lograte可能由于在指定的目录中写入错误而失败(可能是旋转后的文件已经存在?或者相关的文件夹丢失了?)

如果以上工作正常,则可能需要使用常见的logrotate conf文件运行debugging模式(这将触发debugging模式,并帮助查找nginx logrotate以外的问题)

 /usr/sbin/logrotate -d /etc/logrotate.conf 

如果以上运行成功 – 您需要确认crontabs是否正在为Linux用户正常工作(root?)。 你可以设置一个简单的基于回声的cron来检查相同的。