因为访问美国FTP服务器速度比较慢,因此但愿有一个工具能够晚上自动同步美国FTP服务器上的文件到Win 2003本地共享盘并邮件提示是否有更新。
bash
所需工具
服务器
FreeFileSync 6.11软件(自动同步文件软件)
ide
bmail.exe (发送邮件程序或其它一样功能的程序)
工具
1. 首先咱们使用FreeFileSync软件来建立一个同步计划,并保存为batch job.3d
2.写二个Bat脚本,CopyFTPtoShareFolder.bat,这个作为计划任务运行的脚本。FreeFileSync.bat查询FreeFileSync软件同步后的日志,并筛选若有文件更新或更新错误则发邮件通知。日志
CopyFTPtoShareFolder.bat (先运行以前定义的batch job,完成后则运行FreeFileSync.bat)orm
start /wait "C:\Program Files\FreeFileSync\FreeFileSync.exe" "C:\Documents and Settings\adminsimond\My Documents\CopyFTPtoSharefolder.ffs_batch" FreeFileSync.bat
FreeFileSync.bat (判断lasysyncs.log日志若是有Nothing则不发邮件,其他状况都发邮件通知。)server
@echo off cd c:\temp copy /Y "C:\Documents and Settings\adminsimond\Application Data\FreeFileSync\LastSyncs.log" "c:\temp" @echo off > test.txt & setLocal EnableDELAYedeXpansion set T= for /f "tokens=* delims= " %%a in ('dir/b/on lastsyncs.log') do ( set /a T+=1 if exist !T! del !T! set N= for /f "tokens=1* delims=[]" %%i in ('find /v /n "" ^< %%a') do ( set /a N+=1 if !N! geq 2 if !N! leq 6 >> !T! echo.%%j ) ) for /L %%f in (1 1 !T!) do ( type %%f >> temp.txt ) for /L %%f in (1 1 !T!) do ( del %%f ) type temp.txt findstr /I /c:"Nothing" temp.txt if not errorlevel 1 ( goto:end ) for /f "tokens=* Delims=" %%a in ('type temp.txt') do set b=!b!%%a bmail.exe -s smtpserver -t recipent@XX.com -f sender@XX.com -a "Freefilesync log form..." -b "%b%" :end del /f temp.txt del /f text.txt
3. 新建计划任务并定时执行,Run as要设置有权限的用户来执行,最好该用户密码固定,如运行后台服务的管理员帐号。blog
4. 收到的邮件提示。
token