MongoDB logrotate 偶尔会在压缩错误时更改文件大小

MongoDB logrotate 偶尔会在压缩错误时更改文件大小

我使用这个脚本来轮换 MongoDB v3.6.3 日志:

/var/log/mongodb/mongod.log {
        weekly
        rotate 52
        compress
        missingok
        notifempty
        sharedscripts
        create 644 mongodb mongodb
        postrotate
                /bin/kill -SIGUSR1 `cat /mnt/mongodb/data/mongod.lock 2> /dev/null` 2> /dev/null || true
        endscript
        dateext
        dateformat .%Y-%m-%d
}

但是,有时也会发生此错误:

/etc/cron.daily/logrotate:
error: Compressing program wrote following message to stderr when compressing log /var/log/mongodb/mongod.log.2018-04-09:
gzip: stdin: file size changed while zipping

会发生什么情况以及如何避免此类错误?

答案1

在压缩行后添加 delaycompress。它将在下一次旋转时压缩它,因此您会在更长时间内使用更多的磁盘,但它将释放文件句柄,以便您可以避免此错误。

相关内容