11. 日志切割

优质
小牛编辑
127浏览
2023-12-01

切割日志使用logrotate这个服务即可。

编辑/etc/logrotate.d/nginx这个文件,内容如下:

  1. /var/log/nginx/*.log {
  2. weekly
  3. missingok
  4. rotate 52
  5. compress
  6. delaycompress
  7. notifempty
  8. create 0640 www-data adm
  9. sharedscripts
  10. prerotate
  11. if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
  12. run-parts /etc/logrotate.d/httpd-prerotate; \
  13. fi \
  14. endscript
  15. postrotate
  16. [ -s /run/nginx.pid ] && kill -USR1 `cat /run/nginx.pid`
  17. endscript
  18. }

这个会每周切割一次日志。

kill -USR1 cat /run/nginx.pid是给nginx发送信号,让其重新打开日志文件(Reopening the log file)。至于pid文件的路径,要根据实际情况而定,可以通过nginx -V查到。

下面是日志切割后的效果。

  1. yinsigan@iZ94x9hoenwZ:~$ sudo ls /var/log/nginx
  2. 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
  3. 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
  4. ...

完结。