技术解析

logrotate 管理分割 nginx 日志无效
0
2021-07-16 16:41:37
idczone
服务器想使用logrotate管理分割nginx日志,但是不知道为什么没有效果。如果手动执行logrotate强制rotate日志,能够成功分隔日志。

系统环境是centos 6.4。

下面是配置:

# cat /etc/logrotate.d/nginx
/usr/local/nginx/logs/*.log {
daily
rotate 15
missingok
dateext
sharedscripts
postrotate
if [ -f /usr/local/nginx/logs/nginx.pid ]; then
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
fi
endscript
}

执行sudo logrotate -dv /etc/logrotate.d/nginx的时候显示log does not need rotating

另外 cat /var/lib/logrotate.status 的时候,发现日志文件确实被标记成已经rotate了。
我遇到过两次的经验,供参考:
1 看看cron进程是不是起来了,以及cron里有没有配logrotate
2 /etc/logrotate.d/nginx与同目录下文件的权限是不是一致

/etc/cron.daily 里面有logrotate文件,这样是不是就证明配置过了?还是需要在其它地方配置每天执行才会每天去执行那个daily里面的任务。我看其它系统的log都能很好的rotate。另外/etc/logrotate.d/nginx权限跟其它的也是一样的。

流量多大, 日志多大, 如果日志很小,logrotate 会懒得搞

今天的日志文件大概有几百兆吧,我感觉我的配置并没有指明对日志大小有限制。

nginx 运行在什么用户下面?
试试看 create 0640 www adm
如果 nginx 是 www 下面的。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服