溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Robocopy命令實(shí)現(xiàn)文件服務(wù)器每日鏡像備份/增量備份操作

發(fā)布時(shí)間:2020-08-04 03:50:58 來源:網(wǎng)絡(luò) 閱讀:42442 作者:xifalniang 欄目:建站服務(wù)器

Robocopy是微軟推出的可靠文件復(fù)制服務(wù),經(jīng)過測(cè)試,比xcopy更加優(yōu)秀,特別是在復(fù)制ACL及文件時(shí)間戳方面。
免費(fèi)同步軟件通常在ACL同步這一塊比較薄弱,而付費(fèi)軟件復(fù)雜操作,我們可以使用robocopy結(jié)合任務(wù)程序做到日常備份和增量備份。

Tips:
/dcopy:T 可以復(fù)制目錄時(shí)間戳。
如果未加則文件夾時(shí)間為復(fù)制發(fā)生的時(shí)間點(diǎn)。如果你希望時(shí)間戳和源目錄一直,可以再執(zhí)行一次命令,加/dcopy:T。

/log:日志
測(cè)試的時(shí)候運(yùn)行的話 加 /tee命令,這樣既能
/log+ 的話持續(xù)寫入同一個(gè)日志。

注: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文件夾內(nèi)(D盤可以沒有abc文件夾,會(huì)自動(dòng)創(chuàng)建,如果已經(jīng)存在,會(huì)覆蓋abc的ACL),包括abc內(nèi)一切文件&文件夾,包括所有的ACL和文件屬性,包括所有的文件創(chuàng)建,訪問,修改時(shí)間屬性。以8線程的速度運(yùn)行。斷點(diǎn)續(xù)傳。并創(chuàng)建時(shí)間日志。

增量備份
近期備份修改過的文件
robocopy c:\abc d:\monday /mir /copyall /dcopy:DAT /w:1 /r:1 /maxage:1 /mt:8
效果是將C\abc 內(nèi)一天內(nèi)所有修改過的文件備份到Monday文件夾內(nèi)。
加/z 支持?jǐn)帱c(diǎn)續(xù)傳
Robocopy命令實(shí)現(xiàn)文件服務(wù)器每日鏡像備份/增量備份操作
/xa:h只能排除隱藏文件,目前沒有針對(duì)隱藏目錄的命令。只能用/XD 目錄名來排除隱藏目錄。
Robocopy命令實(shí)現(xiàn)文件服務(wù)器每日鏡像備份/增量備份操作
robocopy c:\ d:\aaa /e /XD “System Volume Information“” /XD $RECYCLE.BIN /a-:H
對(duì)于robocopy針對(duì)根目錄操作,需要去除System Volume Information和$RECYCLE.BIN這兩個(gè)目錄,用/XD參數(shù),/A-:H清除隱藏文件夾屬性.


@echo off
title Robocopy每日定期鏡像備份腳本
echo.

echo 防呆:請(qǐng)修改此腳本配置并刪除此行
pause >nul

:設(shè)置當(dāng)前日期名
set y=%date:~0,4%%date:~5,2%%date:~8,2%

:備份頻率 *
set pinlv=daily

:輸入備份時(shí)間 格式"22:00" *
set time=20:00

:存日志、BAT、郵件插件 *
set weizhi=E:\RCMB%y%

:源路勁 *
set yuan="D:\abc"

:目標(biāo)路勁 *
set mubiao="E:\abc"

:任務(wù)名字 *
set taskname=DailyMBCopy

:設(shè)置郵件
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鏡像復(fù)制任務(wù)已經(jīng)完成
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%"

:創(chuàng)建復(fù)制腳本
echo @echo off >%weizhi%\robocopy_sc.bat
echo title 執(zhí)行RCMB任務(wù)腳本ING >>%weizhi%\robocopy_sc.bat
:當(dāng)凌晨0點(diǎn)開始到10點(diǎn)前,如果用網(wǎng)上的批處理命名方式,會(huì)有個(gè)空格。導(dǎo)致無法應(yīng)用名字。
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可以在執(zhí)行命令的時(shí)候查看進(jìn)度 /np關(guān)閉了文件百分比 /xa:sht 排除了系統(tǒng),隱藏,臨時(shí)文件 /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

:創(chuàng)建一個(gè)查看并執(zhí)行任務(wù)的測(cè)試腳本
echo @echo off >%weizhi%\RunRobocopySchtaskImmediately.bat
echo title 查看并執(zhí)行該任務(wù) >>%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 任意鍵立刻執(zhí)行該任務(wù) >>%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

:復(fù)制郵件程序
robocopy "%~dp0blatmail" "%weizhi%\blatmail" /e >nul

:創(chuàng)建任務(wù)
schtasks /create /sc %pinlv% /tn %taskname% /tr "%weizhi%\robocopy_sc.bat" /st %time% /rl highest /f
echo 任意鍵查看該任務(wù)
pause >nul
cls
echo.
echo.
echo.
echo -------------------------------------------------------------------------------------
schtasks /query /tn %taskname% /v /fo list
echo -------------------------------------------------------------------------------------
echo "按任意鍵繼續(xù)"
pause >nul
goto abcd
:abcd
start "" %weizhi%
start "" %mubiao%
exit

:abc
cls
echo.
echo.
echo.
echo.
echo 目錄已經(jīng)存在 請(qǐng)手動(dòng)刪除后重試
echo 任意鍵退出
pause >nul
exit


另一個(gè)腳本為Robocopy每日定時(shí)增量備份。
詳情見下載。

最后用Blatmail發(fā)送郵件。下載可見。


這是運(yùn)行腳本后自動(dòng)創(chuàng)建的目錄文件夾。
Robocopy命令實(shí)現(xiàn)文件服務(wù)器每日鏡像備份/增量備份操作

腳本配置每日定時(shí)同步計(jì)劃任務(wù)
Robocopy命令實(shí)現(xiàn)文件服務(wù)器每日鏡像備份/增量備份操作
效果如下
Robocopy命令實(shí)現(xiàn)文件服務(wù)器每日鏡像備份/增量備份操作

Robocopy命令實(shí)現(xiàn)文件服務(wù)器每日鏡像備份/增量備份操作

這是郵件效果:
Robocopy命令實(shí)現(xiàn)文件服務(wù)器每日鏡像備份/增量備份操作

附件中為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

Robocopy命令實(shí)現(xiàn)文件服務(wù)器每日鏡像備份/增量備份操作

如果希望用戶點(diǎn)擊后就改變“訪問時(shí)間”,然后以訪問時(shí)間來做robocoy的拷貝的話,可以參考如下文章。
“為什么文件屬性中的“訪問時(shí)間”和“修改時(shí)間”不一致?“
https://blog.csdn.net/D_R_L_T/article/details/74611126

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI