Site icon Mr. 沙先生

Windows Dos FTP 定期排程 Upload / Download-Batch script

在資安的考量下 Server 一般不會開啟 FTP 提供外部的人上傳檔案,在這樣的狀況下 Server 就必須主動去 FTP 抓檔案下來 or FTP 丟檔到 Server

 

本篇用 Windows 內建的 batch script 來處理

 

 

範例1:

抓取遠端 FTP site 中的 testfile1.txt、testfile2.txt、testfile3.txt , 並丟到本機的 D:\ftpsync\

FTP site: 192.168.10.10

Login: testuser / testpwd

使用「工作排程器」執行 FtpSYNCScript.bat

 

FtpSYNCScript.bat , 主要執行檔

##執行 ftp 並引用 GetFTPcommand.txt
set log=D:\log\%date:~0,4%%date:~5,2%%date:~8,2%.log # 設定環境變數, 使log照日期寫入 
ftp -s:D:\GetFTPcommand.txt >> %log%                 # 執行 GetFTPcommand 並寫入log

 

GetFTPcommand.txt , 執行內容

open 192.168.10.10   # 打開 ftp site
testuser             # ftp登入帳號
testpwd              # ftp登入密碼
prompt               # 關閉 talk mode ,註1
lcd d:\ftpsync       # cd 到要放置的本機資料夾
mget testfile*       # 下載所有 testfile* 檔案
disconnect           # 中斷連線
bye                  # 離開 ftp

 

 

 

範例2:

從本機排程上傳  D:\testfile1.txt、testfile2.txt、testfile3.txt , 並丟到 ftp 的 testfile 資料夾

 

FtpSYNCScript.bat , 主要執行檔

##執行 ftp 並引用 UploadFTPcommand.txt
set log=D:\log\%date:~0,4%%date:~5,2%%date:~8,2%.log # 設定環境變數, 使log照日期寫入 
ftp -s:D:\UploadFTPcommand.txt >> %log%              # 執行 GetFTPcommand 並寫入log

 

UploadFTPcommand.txt , 執行內容

open 192.168.10.10   # 打開 ftp site
testuser             # ftp登入帳號
testpwd              # ftp登入密碼
prompt               # 關閉 talk mode
cd testfile          # cd 到要放置的ftp資料夾
mput D:\testfile*    # 上傳所有 testfile* 檔案
disconnect           # 中斷連線
bye                  # 離開 ftp

 

 

 

註1:

prompt 為 ftp 中的交談模式

在 prompt on 的 情況下會要求您對每個符合的檔案作確認,回答 y(yes) 或 n(no) 確認。或可設定成 prompt off,則所有符合的檔案皆會被copy。

 

 

 

參考資料:

Batch – ftpwiki

Exit mobile version