У меня есть ежечасные, ежедневные, еженедельные и т. д. резервные копии базы данных mysql, запущенные rsnapshot. Они запускаются регулярно, но по неправильному расписанию.
Вот содержимое /etc/cron.d/rsnapshot
:
5 * * * * root /usr/bin/rsnapshot hourly
30 0 * * * root /usr/bin/rsnapshot daily
35 12 * * 0 root /usr/bin/rsnapshot weekly
40 13 1 * * root /usr/bin/rsnapshot monthly
45 0 1 1 * root /usr/bin/rsnapshot yearly
Однако, когда я проверяю полученные файлы, оказывается, что снимки делаются по «почасовому» графику. Например, резервная копия daily.0 называется: /backups/daily.0/mysql/2021-01-02_22h05m01s_UTC-db_dump.sql.gz
Вы можете видеть, что этот файл был создан через 5 минут после часа.
Почему ежедневное задание, которое должно выполняться в 00:30 утра каждый день, выполняется на 5 минут позже каждого часа?
Может быть, будет уместна эта часть моего /etc/rsnapshot.conf
:
retain hourly 3
retain daily 7
retain weekly 4
retain monthly 12
retain yearly 100
решение1
Из документов:
При настройке [интервалов сохранения в
/etc/rsnapshot.conf
], обратите внимание, что первый в списке будет единственным, который фактически будет выполнять резервное копирование файлов из файловой системы И ротацию своих собственных предыдущих резервных копий. Остальные будут ротировать ТОЛЬКО предыдущие резервные копии, создавая свою самую новую резервную копию из самой старой резервной копии, созданной предыдущим элементом в списке. Поэтому порядок, в котором они перечислены в файле конфигурации, очень важен.
По этой причине фактические дампы резервных копий базы данных будут создаваться только с наиболее частым интервалом, в данном случае «ежечасно». Поскольку в вашем примере задание cron запускается «ежечасно» в пять минут каждого часа, все более длительные интервалы (даже ежемесячные) в конечном итоге сохранят резервные копии, созданные в пять минут каждого часа.