服务器想使用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就可以了