切割日志使用logrotate这个服务即可。
编辑/etc/logrotate.d/nginx这个文件,内容如下:
/var/log/nginx/*.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi \
endscript
postrotate
[ -s /run/nginx.pid ] && kill -USR1 `cat /run/nginx.pid`
endscript
}
这个会每周切割一次日志。
kill -USR1 cat /run/nginx.pid是给nginx发送信号,让其重新打开日志文件(Reopening the log file)。至于pid文件的路径,要根据实际情况而定,可以通过nginx -V
查到。
下面是日志切割后的效果。
yinsigan@iZ94x9hoenwZ:~$ sudo ls /var/log/nginx
access.log access.log.13.gz access.log.18.gz access.log.5.gz error.log error.log.13.gz error.log.18.gz error.log.5.gz
access.log.1 access.log.14.gz access.log.19.gz access.log.6.gz error.log.1 error.log.14.gz error.log.19.gz error.log.6.gz
...
完结。