自動同步文件並郵件通知

    因爲訪問美國FTP服務器速度比較慢,因此但願有一個工具能夠晚上自動同步美國FTP服務器上的文件到Win 2003本地共享盤並郵件提示是否有更新。
bash

    所需工具
服務器

    FreeFileSync 6.11軟件(自動同步文件軟件)
ide

    bmail.exe (發送郵件程序或其它一樣功能的程序)
工具

    1. 首先咱們使用FreeFileSync軟件來建立一個同步計劃,並保存爲batch job.3d

wKioL1Ri-qzRtfsEAAQu-63Yse8607.jpgwKiom1Ri-o2hk1pDAABwnIdsclo555.jpg

 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

wKiom1Ri_gWja2akAAEnhQYJabk988.jpg

    4. 收到的郵件提示。
token

    wKioL1RjA7iTR0YcAAHxJxe_Z2k957.jpg

相關文章
相關標籤/搜索