使用nginx自带的logrotate来分割nginx日志。
1.建立定时任务。每天凌晨执行。
#手工对nginx日志进行切割转换
/usr/sbin/logrotate -vf /etc/logrotate.d/nginx
#只保留最近7天的压缩转储日志文件
find //usr/local/nginx/logs/* -name “*.log” -mtime 7 -type f -exec rm -rf {} ;
2.建立日志分割文件(/etc/logrotate.d/nginx)
/usr/local/nginx/logs/*.log //日志所在目录
{
daily //日志按天轮询
nocopytruncate //备份日志文件但是不截断
create //创建文件
noolddir //转储后的日志文件和当前日志文件放在同一个目录下
rotate 7 //指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份
dateext
postrotate //在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行。在这种情况下,rsyslogd 进程将立即再次读取其配置并继续运行。
if [ -f /usr/local/nginx/logs/nginx.pid ]; then
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
fi
endscript
}