服務器文件同步有不少工具,例如 GoodSync、rsync、BitTorrent Sync等……其實WINDOWS下自帶了一個文件同步利器:ROBOCOPY。它是一個命令行的目錄複製命令,自從Windows NT 4.0 開始就成爲windows 資源工具包的一部分,而後在Windows Vista、Windows 7和 Windows Server 2008採用做爲標準的功能。Windows 7的此項功能也獲得升級——已經能夠支持多線程了,這就意味着能夠大大提高複製速度。並且該功能能夠建立兩個文件結構徹底的鏡像副本而不復制任何不須要的重複文件,同時還容許您保留全部相關文件信息,包括日期和時間戳、安全訪問控制列表(ACL))等等。windows
例如我要同步本機目錄D:\Program\wwwroot 到局域網 \\192.168.2.2\d$\Program\wwwroot ,忽略文件:*.tmp *.log ,忽略目錄:Logs app_data .svn 並將同步結果寫入日誌文件Sync.log,能夠這樣寫:安全
robocopy "D:\Program\wwwroot" "\\192.168.2.2\d$\Program\wwwroot" /E /XF *.tmp *.log /XD Logs app_data .svn /LOG+:Sync.log
下面先看看這條命令的用法吧:服務器
1 ------------------------------------------------------------------------------- 2 ROBOCOPY :: Windows 的可靠文件複製 3 ------------------------------------------------------------------------------- 4 5 開始時間: Mon Sep 26 16:23:01 2016 6 7 用法 :: ROBOCOPY source destination [file [file]...] [options] 8 9 源 :: 源目錄(驅動器:\路徑或\\服務器\共享\路徑)。 10 目標 :: 目標目錄(驅動器:\路徑或\\服務器\共享\路徑)。 11 文件 :: 要複製的文件(名稱/通配符: 默認爲 "*.*")。 12 13 :: 14 :: 複製選項: 15 :: 16 /S :: 複製子目錄,但不復制空的子目錄。 17 /E :: 複製子目錄,包括空的子目錄。 18 /LEV:n :: 僅複製源目錄樹的前 n 層。 19 20 /Z :: 在可從新啓動模式下複製文件。 21 /B :: 在備份模式下複製文件。 22 /ZB :: 使用可從新啓動模式;若是拒絕訪問,請使用備份模式。 23 /EFSRAW :: 在 EFS RAW 模式下複製全部加密的文件。 24 25 /COPY:複製標記:: 要複製的文件內容(默認爲 /COPY:DAT)。 26 (複製標記: D=數據,A=屬性,T=時間戳)。 27 (S=安全=NTFS ACL,O=全部者信息,U=審覈信息)。 28 29 /DCOPY:T :: 複製目錄時間戳。 30 31 /SEC :: 複製具備安全性的文件(等同於 /COPY:DATS)。 32 /COPYALL :: 複製全部文件信息(等同於 /COPY:DATSOU)。 33 /NOCOPY :: 不復制任何文件信息(與 /PURGE 一塊兒使用生效)。 34 35 /SECFIX :: 修復全部文件的文件安全性,即便是跳過的文件。 36 /TIMFIX :: 修復全部文件的文件時間,即便是跳過的文件。 37 38 /PURGE :: 刪除源中再也不存在的目標文件/目錄。 39 /MIR :: 鏡像目錄樹(等同於 /E 和 /PURGE)。 40 41 /MOV :: 移動文件(複製後從源中刪除)。 42 /MOVE :: 移動文件和目錄(複製後從源中刪除)。 43 44 /A+:[RASHCNET] :: 將給定的屬性添加到複製文件。 45 /A-:[RASHCNET] :: 從複製文件中刪除給定的屬性。 46 47 /CREATE :: 僅建立目錄樹和長度爲零的文件。 48 /FAT :: 僅使用 8.3 FAT 文件名建立目標文件。 49 /256 :: 關閉超長路徑(> 256 字符)支持。 50 51 /MON:n :: 監視源;發現多於 n 個更改時再次運行。 52 /MOT:m :: 監視源;若是更改,在 m 分鐘時間內再次運行。 53 54 /RH:hhmm-hhmm :: 運行小時數 - 能夠啓動新副本的時間。 55 /PF :: 以每一個文件(而不是每一個步驟)爲基礎檢查運行小時數。 56 57 /IPG:n :: 程序包間的間距(ms),以釋放低速線路上的帶寬。 58 59 /SL :: 對照目標複製符號連接。 60 61 /MT[:n] :: 使用 n 個線程進行多線程複製(默認值爲 8)。 62 n 必須至少爲 1,但不得大於 128。 63 該選項與 /IPG 和 /EFSRAW 選項不兼容。 64 使用 /LOG 選項重定向輸出以便得到最佳性能。 65 66 :: 67 :: 文件選擇選項: 68 :: 69 /A :: 僅複製具備存檔屬性集的文件。 70 /M :: 僅複製具備存檔屬性的文件並重置存檔屬性。 71 /IA:[RASHCNETO] :: 僅包含具備任意給定屬性集的文件。 72 /XA:[RASHCNETO] :: 排除具備任意給定屬性集的文件。 73 74 /XF 文件[文件]... :: 排除與給定名稱/路徑/通配符匹配的文件。 75 /XD 目錄[目錄]... :: 排除與給定名稱/路徑匹配的目錄。 76 77 /XC :: 排除已更改的文件。 78 /XN :: 排除較新的文件。 79 /XO :: 排除較舊的文件。 80 /XX :: 排除多餘的文件和目錄。 81 /XL :: 排除孤立的文件和目錄。 82 /IS :: 包含相同文件。 83 /IT :: 包含已調整的文件。 84 85 /MAX:n :: 最大的文件大小 - 排除大於 n 字節的文件。 86 /MIN:n :: 最小的文件大小 - 排除小於 n 字節的文件。 87 88 /MAXAGE:n :: 最長的文件存在時間 - 排除早於 n 天/日期的文件。 89 /MINAGE:n :: 最短的文件存在時間 - 排除晚於 n 天/日期的文件。 90 /MAXLAD:n :: 最大的最後訪問日期 - 排除自 n 以來未使用的文件。 91 /MINLAD:n :: 最小的最後訪問日期 - 排除自 n 以來使用的文件。 92 (If n < 1900 then n = n days, else n = YYYYMMDD date)。 93 94 /XJ :: 排除接合點。(默認狀況下一般包括)。 95 96 /FFT :: 假設 FAT 文件時間(2 秒粒度)。 97 /DST :: 彌補 1 小時的 DST 時間差。 98 99 /XJD :: 排除目錄的接合點。 100 /XJF :: 排除文件的接合點。 101 102 :: 103 :: 重試選項: 104 :: 105 /R:n :: 失敗副本的重試次數: 默認爲 1 百萬。 106 /W:n :: 兩次重試間的等待時間: 默認爲 30 秒。 107 108 /REG :: 將註冊表中的 /R:n 和 /W:n 保存爲默認設置。 109 110 /TBD :: 等待定義共享名稱(重試錯誤 67)。 111 112 :: 113 :: 日誌記錄選項: 114 :: 115 /L :: 僅列出 - 不復制、添加時間戳或刪除任何文件。 116 /X :: 報告全部多餘的文件,而不僅是選中的文件。 117 /V :: 生成詳細輸出,同時顯示跳過的文件。 118 /TS :: 在輸出中包含源文件的時間戳。 119 /FP :: 在輸出中包含文件的完整路徑名稱。 120 /BYTES :: 以字節打印大小。 121 122 /NS :: 無大小 - 不記錄文件大小。 123 /NC :: 無類別 - 不記錄文件類別。 124 /NFL :: 無文件列表 - 不記錄文件名。 125 /NDL :: 無目錄列表 - 不記錄目錄名稱。 126 127 /NP :: 無進度 - 不顯示已複製的百分比。 128 /ETA :: 顯示覆制文件的預期到達時間。 129 130 /LOG:文件 :: 將狀態輸出到日誌文件(覆蓋現有日誌)。 131 /LOG+:文件 :: 將狀態輸出到日誌文件(附加到現有日誌中)。 132 133 /UNILOG:文件 :: 以 UNICODE 方式將狀態輸出到日誌文件(覆蓋現有日誌)。 134 /UNILOG+:文件 :: 以 UNICODE 方式將狀態輸出到日誌文件(附加到現有日誌中)。 135 136 /TEE :: 輸出到控制檯窗口和日誌文件。 137 138 /NJH :: 沒有做業標頭。 139 /NJS :: 沒有做業摘要。 140 141 /UNICODE :: 以 UNICODE 方式輸出狀態。 142 143 :: 144 :: 做業選項 : 145 :: 146 /JOB:做業名稱 :: 從命名的做業文件中提取參數。 147 /SAVE:做業名稱 :: 將參數保存到命名的做業文件 148 /QUIT :: 處理命令行後退出(以查看參數)。 149 /NOSD :: 未指定源目錄。 150 /NODD :: 未指定目標目錄。 151 /IF :: 包含如下文件。
這麼多的命令不會用怎麼辦?你能夠下載這個軟件:Robocopy GUI,它提供交互界面使得使用簡化很多。多線程