假設我每天都創建一個備份副本,並假定每個備份都是單個壓縮文件,並在其文件名中包含時間戳信息。假設備份每天都在運行,我怎樣才能保留最近1年的備份只有100個備份副本?
現在,我想編寫一個每日運行的腳本,刪除較舊的備份並只保留100個備份。但是,這100個備份分佈在1年之內,因此我仍然擁有1年的副本,但是我應該擁有更多的最近備份副本和更少的較舊備份副本,即在任何給定時刻,兩個倖存的連續備份隨着時間的推移,副本不斷增加。
算法還應該考慮到它將每天運行一次。
此外,有沒有這樣的算法的名稱 - exponential range?
,exponential distance?
,non-linear backup expiry?
,logarithmic something?
什麼?
如果你在回答中包含代碼,我更喜歡Ruby(但不是必須的,因爲如果它是用另一種語言,我可以手動將其轉換爲Ruby)。
你確定你需要將此代碼自己?像這樣的系統在諸如dirvish之類的東西中實現。它進行增量備份(所以你不會多次獲得相同的文件!),但同時有快照。它還可以定義您的到期規則(例如,最近15天,然後每週開始4周,然後開始本月等)。不確定這是否是你想要的,所以不是答案,但是看一看? http://www.dirvish.org/(我不以任何方式與dirvish,只是一個用戶有關)。 – Nanne 2012-02-18 11:39:00