Почему 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.