Я использую этот скрипт для ротации журналов 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
Что происходит и как избежать такой ошибки?
Добавьте задержку сжатия после строки сжатия. Он заархивирует его при следующем повороте, поэтому вы будете использовать немного больше диска на более длительный срок, но он освободит дескриптор файла, чтобы вы могли избежать этой ошибки.