这个问题困扰了我很久,也在很多地方发帖求助过,segmentfault地址如下(http://segmentfault.com/q/1010000000442448)
现摘录如下,做个备份:
服务器想使用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了。
最后发现是selinux的问题。
chcon -Rv --type=var_log_t /usr/local/nginx/logs/
为文件加上var_log_t就可以了