Notes: 通过logrotate进行nginx的日志轮转
看着线上项目的access.log日益增大,进行日志分析相当不便,迫切需要进行日志轮转。 网上找到了使用logrotate进行nginx日志轮转的方案,由于不需要安装任何软件,配置起来也方便,因此考虑使用这个作为轮转方案。 先copy一个配置文件: [code] cp /et...
看着线上项目的access.log日益增大,进行日志分析相当不便,迫切需要进行日志轮转。
网上找到了使用logrotate进行nginx日志轮转的方案,由于不需要安装任何软件,配置起来也方便,因此考虑使用这个作为轮转方案。
先copy一个配置文件:
[code]
cp /etc/logrotate.d/httpd /etc/logrotate.d/nginx
[/code]
进行该文件的配置:
[code]
/usr/local/nginx/logs/*.log {
daily
dateext
rotate 99
copytruncate
nocompress
missingok
notifempty
sharedscripts
postrotate
/bin/kill -HUP `/bin/cat /usr/local/nginx/logs/nginx.pid`
endscript
}
[/code]
配置说明:
daily:按天来rotate
dateext:日志rotate后再后面加日期,例如:access.log轮转后会变为access.log-20110508
rotate:保留最近的几个文件
copytruncate:是指在进行轮转时会先把日志内容复制到老文件后才清除日志文件内容,可以保证日志记录的连续性。
nocompress:不压缩
missingok:当日志为空时不进行轮转
postrotate和endscript可以插入命令和脚本 执行某些操作,这里我们是平滑重启nginx,否则轮转后access.log不会再写入。
测试配置是否生效:
[code]
/usr/sbin/logrotate -f /etc/logrotate.conf
[/code]
看看/usr/local/nginx/logs/下面是否有类似access.log-20110508的log生成
评论交流
暂无评论,欢迎留下你的想法