Почему logrotate делает дополнительное вращение?

Пытаясь настроить logrotate на 10 ежедневных чередований в моей папке дампа, у меня 11 вращений (mydump.sql, mydump.sql.1 ... mydump.sql.11), почему?

Это мой файл конфигурации logrotate в /etc/logrotate.d/ (я использую Ubuntu server 12.4 LTS с logrotate 3.7.8):

/home/alepac/dumps/mydump.sql {
    rotate 10
    daily
    nomissingok
    create
    nocompress
    nocopy
    prerotate
        mysqldump -u alepac -pThisIsNotMyPwd myDatabase > /home/alepac/dumps/mydump.sql
    endscript
    postrotate
        rsync -avz --partial --delete /home/alepac/dumps/ my-remote-server.no-ip.biz:/home/alepac/db-backups/dbs/customer/ > /tmp/rsync.stdout 2> /tmp/rsync.stderr
    endscript
}

Для лучшего объяснения я вращаю дамп базы данных mysql; Я делаю дамп на prerotate, затем я вращаю и синхронизирую директорию дампа с удаленной машиной, используя rsync на postrotate. Наконец то create options создает новый дамп нулевого размера, чтобы обеспечить следующее вращение.

1 ответ

Решение

Проблема вызвана rsync. Сценарий postrotate выполняется перед удалением старых файлов журнала, поэтому в удаленном месте у меня всегда есть файл mydump.sql.11. Более того, если postscript завершается неудачно (например, когда возникает проблема с сетью, rsync завершится ошибкой), остальные действия не выполняются, и поэтому logrotate не удаляет файл mydump.sql.11.

Другие вопросы по тегам