大体上有三种方法切割nginx日志。
第一种是写个定时任务,每天零点把旧的日志重命名,并对nginx进程发送USR1信号使其重新打开日志并写入。
第二种是能过管道的方式把新产生的日志写到另外一个日志文件里。
第三种是能过logrotate来切割日志,logrotate是系统自带的服务,可以切割任何日志,不仅仅是nginx,这里推荐使用它。
下面我们详细讲一下Logrotate切割Nginx日志
[title]步骤1:[/title]
vi /etc/logrotate.d/nginx
文件内容如下
/usr/local/nginx/logs/access.log { daily rotate 7 missingok notifempty dateext sharedscripts postrotate if [ -f /usr/local/nginx/logs/nginx.pid ]; then kill -USR1 `cat /usr/local/nginx/logs/nginx.pid` fi endscript }
[title]步骤2:测试是否可用[/title]
/usr/sbin/logrotate -f /etc/logrotate.d/nginx
[title]步骤3:配置定时任务[/title]
59 23 * * * /usr/sbin/logrotate -f /etc/logrotate.d/nginx
完成!