![为什么 rsnapshot cron 作业按照错误的时间表运行?](https://linux22.com/image/761754/%E4%B8%BA%E4%BB%80%E4%B9%88%20rsnapshot%20cron%20%E4%BD%9C%E4%B8%9A%E6%8C%89%E7%85%A7%E9%94%99%E8%AF%AF%E7%9A%84%E6%97%B6%E9%97%B4%E8%A1%A8%E8%BF%90%E8%A1%8C%EF%BC%9F.png)
我有 rsnapshot 运行的 mysql 数据库每小时、每天、每周等备份。这些备份定期运行,但时间安排不对。
以下是 的内容/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 作业在整点后五分钟“每小时”运行,因此所有更大的间隔(甚至每月)最终都会保留在整点后五分钟创建的备份。