我使用这个脚本来轮换 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。它将在下一次旋转时压缩它,因此您会在更长时间内使用更多的磁盘,但它将释放文件句柄,以便您可以避免此错误。