切割日志使用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
...

完结。

results matching ""

    No results matching ""