使用logrotate轮询日志很方便,配置也很简单。

1、建立/etc/logrotate.d/nginx文件

vi /etc/logrotate.d/nginx

2、写入如下内容:

/var/log/nginx/*log {

daily
rotate 7
missingok
notifempty
compress
sharedscripts
postrotate
[ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
endscript
}

注释:

/var/log/nginx/*log:需要轮询日志路径
daily:每天轮询
rotate 7:保留最多7次滚动的日志
missingok:如果日志丢失,不报错继续滚动下一个日志
notifempty:当日志为空时不进行滚动
compress:旧日志默认用gzip压缩
/var/run/nginx.pid:nginx主进程pid

sharedscripts:运行postrotate脚本

 
3、让logrotate每天进行一次滚动,在crontab中添加一行定时脚本。
 
#crontab -e
59 23 * * *  /usr/sbin/logrotate -f /etc/logrotate.d/nginx
每天23点59分进行日志滚动