Nginx logrotate不清理日志

时间:2016-12-15 08:08:17

标签: ubuntu nginx logrotate

我有nginx logrotate的配置

/var/log/nginx/*.log {
        daily
        missingok
        rotate 3
        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
                invoke-rc.d nginx rotate >/dev/null 2>&1
        endscript
}

理想情况下,它应该压缩gz中的文件,然后在3天后删除以前的文件,但这里是我的日志文件

-rw-r--r-- 1 www-data www-data 1.4G Dec 10 00:00 2016-12-09-access.log.1
-rw-r----- 1 www-data adm         0 Dec 11 06:33 2016-12-10-access.log
-rw-r--r-- 1 www-data www-data 1.5G Dec 11 00:00 2016-12-10-access.log.1
-rw-r----- 1 www-data adm         0 Dec 12 06:30 2016-12-11-access.log
-rw-r--r-- 1 www-data www-data 1.6G Dec 12 00:00 2016-12-11-access.log.1
-rw-r----- 1 www-data adm         0 Dec 13 06:46 2016-12-12-access.log
-rw-r--r-- 1 www-data www-data 1.4G Dec 13 00:00 2016-12-12-access.log.1
-rw-r----- 1 www-data adm         0 Dec 14 06:25 2016-12-13-access.log
-rw-r--r-- 1 www-data www-data 1.4G Dec 14 00:00 2016-12-13-access.log.1
-rw-r----- 1 www-data adm         0 Dec 15 06:50 2016-12-14-access.log
-rw-r--r-- 1 www-data www-data 1.5G Dec 15 00:00 2016-12-14-access.log.1
-rw-r--r-- 1 www-data www-data 362M Dec 15 07:59 2016-12-15-access.log
-rw-r----- 1 www-data adm         0 Dec 15 06:50 ---access.log
-rw-r----- 1 www-data adm       254 Dec 15 04:53 ---access.log.1
-rw-r----- 1 www-data adm       202 Oct 25 03:58 ---access.log.10.gz
-rw-r----- 1 www-data adm       578 Oct 24 02:30 ---access.log.11.gz
-rw-r----- 1 www-data adm      1.3K Oct 23 06:11 ---access.log.12.gz
-rw-r----- 1 www-data adm       980 Oct 22 05:39 ---access.log.13.gz
-rw-r----- 1 www-data adm       648 Oct 21 05:59 ---access.log.14.gz
-rw-r----- 1 www-data adm      1006 Oct 20 05:45 ---access.log.15.gz
-rw-r----- 1 www-data adm       150 Dec 13 23:03 ---access.log.2.gz
-rw-r----- 1 www-data adm        89 Dec 13 05:46 ---access.log.3.gz
-rw-r----- 1 www-data adm       421 Dec 12 06:23 ---access.log.4.gz
-rw-r----- 1 www-data adm       277 Nov  8 17:16 ---access.log.5.gz
-rw-r----- 1 www-data adm       174 Nov  7 05:52 ---access.log.6.gz
-rw-r----- 1 www-data adm       104 Nov  5 18:42 ---access.log.7.gz
-rw-r----- 1 www-data adm       111 Nov  4 23:43 ---access.log.8.gz
-rw-r----- 1 www-data adm       220 Oct 25 19:36 ---access.log.9.gz

并且logrotate状态为

"/var/log/nginx/2016-12-01-access.log" 2016-12-2
"/var/log/nginx/2016-11-21-access.log" 2016-11-22
"/var/log/nginx/2016-09-16-access.log" 2016-9-17
"/var/log/mail.err" 2016-2-10
"/var/log/nginx/2016-10-06-access.log" 2016-10-7
"/var/log/nginx/2016-09-14-access.log" 2016-9-15
"/var/log/nginx/2016-11-02-access.log" 2016-11-3
"/var/log/nginx/2016-10-04-access.log" 2016-10-5
"/var/log/nginx/2016-10-22-access.log" 2016-10-23
"/var/log/nginx/2016-09-30-access.log" 2016-10-1
"/var/log/landscape/package-reporter.log" 2016-12-15
"/var/log/nginx/2016-10-20-access.log" 2016-10-21

关于最近几天的轮换没有提供太多信息。如何调试配置?

1 个答案:

答案 0 :(得分:0)

您可以使用-df参数调试特定脚本:

logrotate -df /etc/logrotate.d/nginx

立即执行(如果需要):

logrotate -f /etc/logrotate.d/nginx

任何配置更新后重新启动logrotate守护程序:

/usr/sbin/logrotate /etc/logrotate.conf

另请阅读man delaycompress 配置选项:

  

将前一个日志文件的压缩推迟到下一个循环   周期。这仅在与压缩组合使用时才有效。它   当某些程序无法被告知关闭其日志文件时,可以使用   因此可能会继续写入前一个日志文件一段时间。