在資安的考量下 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。
參考資料: