使用 Mercurial 和 Robocopy 進行備份?
問題
我們想將我們的關鍵文件從多個網路共享備份到可移動硬碟。我們希望自動化備份,這樣我們就不必記住執行它。它需要在一夜之間完成。此外,我們希望能夠保留每個文件的多個版本,以便我們可以更輕鬆地避免使用者的錯誤。
背景資料
我在一家基於 Windows 的大型企業工作,有一個集中的 IT 部門負責所有備份。他們的備份是針對災難恢復而不是使用者錯誤,並且需要上級管理人員批准才能進行任何非災難恢復。有幾次我們注意到我們的備份失敗了,我們沒有收到通知。我沒有伺服器或我的桌面的管理權限。我們正在嘗試備份大約 240 GB 的大約 198,000 個文件。這些文件很少更改。我們的備份驅動器是 1 TB。
我提出的解決方案
我想做的是使用帶有 /mir 選項的Robocopy以及Mercurial SCM 編寫一個批處理文件來儲存文件的所有版本。我會在每次執行 Robocopy 之前執行 hg add 和 hg commit 以保存目前狀態,然後製作文件結構的鏡像副本。問題是 /mir 將刪除源中不存在的每個文件夾,而 Mercurial 將儲存庫儲存在目標文件夾中的 .hg 文件夾中。
有誰知道我如何說服 Mercurial 將 .hg 文件夾儲存在其他地方,或者說服 Robocopy 不要從目的地刪除它?
我試圖避免編寫自定義程序來複製。
要在忽略某些文件擴展時執行鏡像,請嘗試以下操作:
robocopy c:\temp\source c:\temp\dest /e /purge /xf *.hg
我在這裡對其進行了一些測試,它似乎將 .hg 文件單獨留在了目的地
我還推薦 /z 標誌(對於大文件可重新啟動)並且過去在處理具有不同時間粒度的伺服器時不得不求助於 /fft 標誌:http ://www.readynas.com/forum/viewtopic.php ?t=3573
編輯:…我上面的範例假設名為 *.hg 的文件…執行相同操作並忽略名為 *.hg 的目錄,請使用以下命令:
robocopy c:\temp\source c:\temp\dest /e /z /purge /xd *.hg