最近由于兼职维护文档服务器,需要将两地的文档进行同步和备份,当服务器的文档发生了变更时,需要自动同步到另外一个服务器上去,经思考确定的方案是:
使用批处理bat脚本循环执行:
@echo off
title SyncToy run in progress...
goto BEGIN
:COMMENT
echo ##############################################
rem while_sync_loop.bat
rem 服务器同步程序 By long.luo @2012/09/06
rem
rem 说明:
rem 这是一个循环处理程序,用于同步两地的文件夹.
rem
echo ##############################################
pause
:BEGIN
echo ##############################################
echo Sync Files Loop begin...
echo
goto DELSYNCLOG
:DELSYNCLOG
echo ##############################################
echo Delete lastsync.log
del lastsync.log
goto ONE_TIME
:SEND_RTX_NOTOFY
echo SEND_RTX_NOTOFY
...
call send_rtx_msg.bat
goto ONE_TIME
pause
:CHECKSYNC
echo CHECKSYNC...
for /f "tokens=*" %%i in ('findstr /i "Copied.*bytes" lastsync.log') do (
for /f "tokens=2" %%j in ("%%i") do if %%j gtr 0 (echo %%j bytes files had synced.&goto SEND_RTX_NOTOFY) else echo NO Need synced.&goto ONE_TIME
)
pause
:ONE_TIME
echo Attempting files sync. Please wait...
call sync.bat >lastsync.log
echo sync end.
goto CHECKSYNC
ping 127.0.0.1 -n 30 >nul
goto DELSYNCLOG
循环bat脚本调用sync.bat,使用SyncToy工具进行资料同步:
@echo off
goto BEGIN
:COMMENT
echo ##############################################
rem sync.bat
rem 服务器同步程序 By long.luo @2012/09/06
rem
rem 说明:
rem 用于同步深圳、长安服务器的文件.
rem
echo ##############################################
pause
:BEGIN
echo SyncToy Log starting at
time /T
date /T
echo ##############################################
echo Checking connection to Changan Server...
echo ##############################################
PING -n 2 -w 10 172.16.101.136 |find "TTL=" && goto CHECKFOLDER
goto PINGFAIL
:CHECKFOLDER
echo ##############################################
echo ChangAn Server is online. Checking for Folder...
if exist F:\f_sync_files\ goto SYNC
goto CHECKFOLDERFAIL
:SYNC
echo ##############################################
echo Begin syncing files...
echo ##############################################
"F:\Program Files\SyncToy 2.1\SyncToyCmd" -R "MyTest"
if %ERRORLEVEL% == 0 goto SUCCESS
goto SYNCFAIL
:PINGFAIL
echo ##############################################
echo ChangAn Server not found. Exiting
goto END
:CHECKFOLDERFAIL
echo ##############################################
echo FOLDER not found. Exiting
goto END
:SUCCESS
echo ##############################################
echo SyncToy completed successfully. Exiting
goto END
:SYNCFAIL
echo ##############################################
echo SyncToy Failed. Exiting
goto END
:END
echo ##############################################
echo SyncToy Log ending at
time /T
date /T