您好,登錄后才能下訂單哦!
Robocopy是微軟推出的可靠文件復制服務,經過測試,比xcopy更加優秀,特別是在復制ACL及文件時間戳方面。
免費同步軟件通常在ACL同步這一塊比較薄弱,而付費軟件復雜操作,我們可以使用robocopy結合任務程序做到日常備份和增量備份。
Tips:
/dcopy:T 可以復制目錄時間戳。
如果未加則文件夾時間為復制發生的時間點。如果你希望時間戳和源目錄一直,可以再執行一次命令,加/dcopy:T。
/log:日志
測試的時候運行的話 加 /tee命令,這樣既能
/log+ 的話持續寫入同一個日志。
注:windows7 or windows2008R2中 /dcopy只支持 /dcopy:T
鏡像同步 Left >Right
robocopy "c:\abc" "D:\abc" /mir /copyall /dcopy:DAT /mt:8 /z /xa:sht /a-:h /np /ts /w:1 /r:1 /XD "System Volume Information" /XD $RECYCLE.BIN /a-:H /log:H:\Log\Robocopy\RBLog.txt /tee
效果是將c盤的abc文件夾(包括abc本身的一切屬性),同步到D盤ABC文件夾內(D盤可以沒有abc文件夾,會自動創建,如果已經存在,會覆蓋abc的ACL),包括abc內一切文件&文件夾,包括所有的ACL和文件屬性,包括所有的文件創建,訪問,修改時間屬性。以8線程的速度運行。斷點續傳。并創建時間日志。
增量備份
近期備份修改過的文件
robocopy c:\abc d:\monday /mir /copyall /dcopy:DAT /w:1 /r:1 /maxage:1 /mt:8
效果是將C\abc 內一天內所有修改過的文件備份到Monday文件夾內。
加/z 支持斷點續傳
/xa:h只能排除隱藏文件,目前沒有針對隱藏目錄的命令。只能用/XD 目錄名來排除隱藏目錄。
robocopy c:\ d:\aaa /e /XD “System Volume Information“” /XD $RECYCLE.BIN /a-:H
對于robocopy針對根目錄操作,需要去除System Volume Information和$RECYCLE.BIN這兩個目錄,用/XD參數,/A-:H清除隱藏文件夾屬性.
@echo off
title Robocopy每日定期鏡像備份腳本
echo.
echo 防呆:請修改此腳本配置并刪除此行
pause >nul
:設置當前日期名
set y=%date:~0,4%%date:~5,2%%date:~8,2%
:備份頻率 *
set pinlv=daily
:輸入備份時間 格式"22:00" *
set time=20:00
:存日志、BAT、郵件插件 *
set weizhi=E:\RCMB%y%
:源路勁 *
set yuan="D:\abc"
:目標路勁 *
set mubiao="E:\abc"
:任務名字 *
set taskname=DailyMBCopy
:設置郵件
set from=abc@yeah.net
set user=abc
set pass=password
set to=12345@qq.com,678910@qq.com
set smtp=smtp.yeah.net
:郵件腳本形參
set a=%%y%%
set b=%%~dp0Log\Robocopy\RBLog%%y%%.txt
set c=%%~dp0Log\Blatmail\Maillog%%y%%.txt
set d=Robocopy鏡像復制任務已經完成
set e=%from%
set f=%user%
set g=%pass%
set h=%to%
set i=%smtp%
if exist "%weizhi%" goto abc
md "%weizhi%"
md "%weizhi%\Log"
md "%weizhi%\Log\Robocopy"
md "%weizhi%\Log\Blatmail"
if exist "%mubiao%" goto abc
md "%mubiao%"
:創建復制腳本
echo @echo off >%weizhi%\robocopy_sc.bat
echo title 執行RCMB任務腳本ING >>%weizhi%\robocopy_sc.bat
:當凌晨0點開始到10點前,如果用網上的批處理命名方式,會有個空格。導致無法應用名字。
echo if "%%time:~0,2%%" lss 10 (set y=%%date:~0,4%%%%date:~5,2%%%%date:~8,2%%%%time:~1,1%%%%time:~3,2%%) else (set y=%%date:~0,4%%%%date:~5,2%%%%date:~8,2%%%%time:~0,2%%%%time:~3,2%%)>>%weizhi%\robocopy_sc.bat
:加/tee可以在執行命令的時候查看進度 /np關閉了文件百分比 /xa:sht 排除了系統,隱藏,臨時文件 /mt:8啟用8線程
echo robocopy %yuan% %mubiao% /mir /copyall /dcopy:DAT /mt:8 /z /xa:sht /a-:h /np /ts /log:%weizhi%\Log\Robocopy\RBLog%%y%%.txt ^>nul >>%weizhi%\robocopy_sc.bat
echo start "" %weizhi%\blatmail\blatmail.bat %a% %b% %c% %d% %e% %f% %g% %h% %i% ^>nul >>%weizhi%\robocopy_sc.bat
:創建一個查看并執行任務的測試腳本
echo @echo off >%weizhi%\RunRobocopySchtaskImmediately.bat
echo title 查看并執行該任務 >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo echo ------------------------------------------------------------------------------------->>%weizhi%\RunRobocopySchtaskImmediately.bat
echo schtasks /query /tn %taskname% /v /fo list>>%weizhi%\RunRobocopySchtaskImmediately.bat
echo echo ------------------------------------------------------------------------------------- >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo echo. >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo echo. >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo echo. >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo echo 任意鍵立刻執行該任務 >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo pause >nul >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo schtasks /run /tn %taskname% >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo echo 任意鍵退出 >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo pause >nul >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo exit >>%weizhi%\RunRobocopySchtaskImmediately.bat
:復制郵件程序
robocopy "%~dp0blatmail" "%weizhi%\blatmail" /e >nul
:創建任務
schtasks /create /sc %pinlv% /tn %taskname% /tr "%weizhi%\robocopy_sc.bat" /st %time% /rl highest /f
echo 任意鍵查看該任務
pause >nul
cls
echo.
echo.
echo.
echo -------------------------------------------------------------------------------------
schtasks /query /tn %taskname% /v /fo list
echo -------------------------------------------------------------------------------------
echo "按任意鍵繼續"
pause >nul
goto abcd
:abcd
start "" %weizhi%
start "" %mubiao%
exit
:abc
cls
echo.
echo.
echo.
echo.
echo 目錄已經存在 請手動刪除后重試
echo 任意鍵退出
pause >nul
exit
另一個腳本為Robocopy每日定時增量備份。
詳情見下載。
最后用Blatmail發送郵件。下載可見。
這是運行腳本后自動創建的目錄文件夾。
腳本配置每日定時同步計劃任務
效果如下
這是郵件效果:
附件中為Robocopy同步與增量同步腳本,Blatmail文件。
http://down.51cto.com/data/2446578
如果XP需要用到Robocopy軟件,可以直接使用GUI版本的Robocopy,安裝需要.net 2.0。
https://technet.microsoft.com/zh-tw/library/2006.11.utilityspotlight.aspx
如果希望用戶點擊后就改變“訪問時間”,然后以訪問時間來做robocoy的拷貝的話,可以參考如下文章。
“為什么文件屬性中的“訪問時間”和“修改時間”不一致?“
https://blog.csdn.net/D_R_L_T/article/details/74611126
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。