Назад | Перейти на главную страницу

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

Что происходит и как избежать такой ошибки?

Добавьте задержку сжатия после строки сжатия. Он заархивирует его при следующем повороте, поэтому вы будете использовать немного больше диска на более длительный срок, но он освободит дескриптор файла, чтобы вы могли избежать этой ошибки.