2017-08-03 95 views
0

我試圖找到一種方法在Windows上運行批處理腳本,將我的項目目錄備份到本地網絡文件共享服務器。什麼,我通常會運行使用批處理腳本每10秒複製一次文件 - 只有一次

例子:

robocopy /mir "C:\PROJECT_FOLDER_PATH" "\\NETWORK_FOLDER_PATH" 

但是,每一個現在,然後,我的IT管理方法我關於被拖慢網大規模複製操作。

隨着我的項目文件夾隨着時間的推移而增長,這變得更加麻煩。我試圖在當天晚些時候簽署文件的情況下運行腳本,以最大限度地減少辦公室中受影響的人數,但是我試圖想出一個更好的解決方案。

我寫過一個腳本,它使用7zip創建一個7zip壓縮文件並將其分割成250MB卷。所以,現在我有一個文件夾,只包含幾個較小的文件,並沒有文件夾擔心。但是,如果我批量複製所有這些到服務器,我擔心我仍然遇到同樣的問題。

所以我最初的想法是每5-10秒一次運行一個副本。而不是一次全部。但我只想讓腳本運行一次。我知道我可以編寫一個循環,並依靠robocopy的/ mir標籤來跳過已備份的文件,但是我不想在啓動腳本後監視腳本。

我想在準備好做備份時運行腳本,然後讓它每隔一段時間將文件複製到網絡上以避免過度徵稅我們的小型網絡。

+1

的[我如何創建一個批處理文件計時器,以執行/調用另一個批處理全天]可能的複製(https://stackoverflow.com/questions/299392/how-do-i-create-a-batch-file-timer-to-execute-call-another-batch-througho ut-th) –

+3

很可能你想使用'版本控制'而不是複製項目文件夾。真。真的真的。 – Alejandro

+2

爲什麼不使用git等版本控制? – icemelt

回答

0

Robocopy有一個特殊的選項,可以在複製時限制數據流量。

/ipg:n - 指定在慢速線路上釋放帶寬的數據包間間隙。

數字n是Robocopy在每個64 KB的塊後等待的毫秒數。 數字越高,Robocopy獲得的速度越慢,但是:您與IT管理員發生衝突的可能性也越小。

實施例:

robocopy /mir /ipg:50 "C:\PROJECT_FOLDER_PATH" "\\NETWORK_FOLDER_PATH" 

在1 GB,這將增加所花費的文件用800秒(16000×50毫秒)複製時間(大約16000每64 KB的塊)的一個文件中。

假設它通常需要80秒來複制此文件;這可能是100 Mbit連接的情況。 然後總時間變成80 + 800 = 880秒(差不多15分鐘)。 使用的帶寬爲8000 Mbit/880 sec = 9.1 Mbit/s。 這爲其他進程留下了超過90 Mbit/s的帶寬。

其他選項可能對您有用:

/rh:hhmm-hhmm - 運行指定新副本的時間可能會啓動。
/pf - 檢查每個文件(不是每個文件)的運行時間。

來源: