我每小時、每天、每周等備份由 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 作業「每小時」在整點後五分鐘運行,因此所有更大的時間間隔(甚至每月)最終都會保留在整點後五分鐘創建的備份。