码迷,mamicode.com
首页 > 其他好文 > 详细

自动同步文件并邮件通知

时间:2014-11-12 18:10:04      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:freefilesync   邮件通知   bat   lasysyncs.log   

    由于访问美国FTP服务器速度比较慢,所以希望有一个工具可以晚上自动同步美国FTP服务器上的文件到Win 2003本地共享盘并邮件提示是否有更新。

    所需工具

    FreeFileSync 6.11软件(自动同步文件软件)

    bmail.exe (发送邮件程序或其它同样功能的程序)

    1. 首先我们使用FreeFileSync软件来创建一个同步计划,并保存为batch job.

bubuko.com,布布扣bubuko.com,布布扣

 2.写二个Bat脚本,CopyFTPtoShareFolder.bat,这个做为计划任务运行的脚本。FreeFileSync.bat查询FreeFileSync软件同步后的日志,并筛选如有文件更新或更新错误则发邮件通知。

CopyFTPtoShareFolder.bat (先运行之前定义的batch job,完成后则运行FreeFileSync.bat)

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则不发邮件,其余情况都发邮件通知。)

@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要设置有权限的用户来执行,最好该用户密码固定,如运行后台服务的管理员账号。

bubuko.com,布布扣

    4. 收到的邮件提示。

    bubuko.com,布布扣


自动同步文件并邮件通知

标签:freefilesync   邮件通知   bat   lasysyncs.log   

原文地址:http://simondu.blog.51cto.com/754321/1575697

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!