[windows] xcopy 備份至 「網路磁碟機」
實作:
來源: D:\develop ;目標: Z:\develop ;檔案數:42966
1.新增網路磁碟機,作法請參考這篇「檔案歷程記錄 備份至 網路磁碟機」的步驟1至步驟3
2.cmd執行xcopy ,或是將指令轉為「批次檔 .bat」執行
我依我這邊的需求,組成我需要的指令:
(1)cmd:
XCOPY D:\develop Z:\develop /D/K/E/Y/C/I/J
(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:\
echo **************************>>D:\xcopyLog\%filename%
echo start Time:%date:~0,4%-%date:~5,2%-%date:~8,2% %time%>>D:\xcopyLog\%filename%
echo sourcePath:%sourcePath%>>D:\xcopyLog\%filename%
echo targetPath:%targetPath%>>D:\xcopyLog\%filename%
echo **************************>>D:\xcopyLog\%filename%
XCOPY %sourcePath%develop %targetPath%develop /D/K/E/Y/C/I/J>>D:\xcopyLog\%filename%
echo End Time:%date:~0,4%-%date:~5,2%-%date:~8,2% %time%>>D:\xcopyLog\%filename%
echo **************************>>D:\xcopyLog\%filename%
ps:
/D只複製比目的檔還新的檔案
/K複製後檔案屬性不變, /E包含子目錄
/Y不要求確認
/C錯誤發生也繼續
/I目的不存在就建立資料夾
/H複製隱藏檔和系統檔
/J 使用無緩衝的 I/O 複製,建議使用於非常大的檔案
3.執行結果與Log
(1) 單1zip檔 4GB左右 -約1分鐘左右完成
(2)第一次執行,多個檔案(42966個.大小約8.4GB) -約2.17小時
(3)第二次執行 (同2的模式,因為第一次執行大部分都複製過了所以比較快)-約22分鐘
*目前感覺檔案大小不是影響速度的主因,主要可能是檔案數量,與網路頻寬導致的瓶頸。
Issues:
(1)無效路徑,0檔案已複製:
這個坑我在windows10測試沒有遇到,可以到windows server 2019 上測試就遇到了,爬了一下文,就是要把「來源路徑」的最後一個反斜線拿掉,我拿掉之後就真的好了...之後可能再研究一下是什麼原因。
XCOPY D:\develop\ Z:\develop /D/K/E/Y/C/I/J
改為
XCOPY D:\develop Z:\develop /D/K/E/Y/C/I/J
留言
張貼留言