[windows] robocopy 備份至 網路磁碟機
實作:
來源: D:\develop ;目標: Z:\develop ;檔案數:48120
1.新增網路磁碟機,作法請參考這篇「檔案歷程記錄 備份至 網路磁碟機」的步驟1至步驟3
2.cmd執行robocopy ,或是將指令轉為「批次檔 .bat」執行
我依我這邊的需求,組成我需要的指令:
(1)cmd:
ROBOCOPY D:\develop Z:\develop /R:0 /W:0 /E /TEE /NFL /NDL /XO /xa:h
(2).bat:
「批次檔,這邊我想每次執行時可以寫一個用時間為檔名的LOG,指令如下。
set today=%date:~0,4%-%date:~5,2%-%date:~8,2%
set filename=%today%_%time:~0,2%%time:~3,2%%time:~6,2%.txt
set sourcePath=D:\
set targetPath=Z:\
robocopy %sourcePath%develop %targetPath%develop /R:0 /W:0 /E /TEE /NFL /NDL /XO /XA:H /MT:32 >>D:\xcopyLog\%filename%
set filename=%today%_%time:~0,2%%time:~3,2%%time:~6,2%.txt
set sourcePath=D:\
set targetPath=Z:\
robocopy %sourcePath%develop %targetPath%develop /R:0 /W:0 /E /TEE /NFL /NDL /XO /XA:H /MT:32 >>D:\xcopyLog\%filename%
ps:
/R:n 失敗複本的重試次數: 預設值是 1 百萬次。
/W:n 重試之間等候時間: 預設值是 30 秒。
/E 複製子目錄,包括空的子目錄。
/TEE 輸出至主控台視窗,以及記錄檔。
/NFL 沒有檔案清單 - 不記錄檔案名稱。
/NDL 沒有目錄清單 - 不記錄目錄名稱。
/XO 排除較舊的檔案。
/xa:[RASHCNETO] 排除已設定任何指定屬性的檔案。 此選項的有效值為:
• R - 唯讀
• A - 封存
• S - 系統
• H - 隱藏
• C - 壓縮
• N - 未編制索引的內容
• E - 加密
• T - 暫存
• O - 離線
/MT:32 — 使用 n 個執行緒進行多執行緒複製(預設值為 8)。必須至少為 1,但不得大於 128。
*依我的觀察MT,如果單一檔案很大 MT給越大 越容易拖慢速度,反之如果檔案數量很大 MT越大越快。
3.執行結果與Log
ps:這是第二次執行結果(已經跑完一次了,所以大多都是比對,速度會快很多,花了約16分鐘)
(1)系統找不到指定的路徑:
備份至 網路磁碟機,如果用系統管理員執行程式,會發生這個錯誤,因為系統管理員只能對本機進行操作,若跨server會有問題。我覺得大概就兩種解決方法,1.最簡單的就是不要用系統管理員執行;2.就要從備份端server下手了,可能開給大家都可以搜尋到不用輸入帳密之類的開始著手(然後將目錄改為IP,像是原本是「Z:\」改為「\\127.0.0.1\」)。
留言
張貼留言