最近需要用到文件的上傳和下載,查看我們使用的系統,發現有一個進程為t_ftpd,懷疑其為一個ftp的守護進程,於是想要用ftp的方式實現。
在windows上使用bat腳本的方式實現:
首先寫一個bat腳本:
download.bat
@echo off
ftp -s:E:\Sylixos\SylixOS_Qt\build-TCWareWigget-Desktop_Qt_5_7_1_MinGW_32bit-Debug\debug\ftp\ftp.txt
這樣就會調用ftp.txt文件
ftp.txt
open 10.1.26.11 root root
ascii prompt off lcd E:\Sylixos\SylixOS_Qt\build-TCWareWigget-Desktop_Qt_5_7_1_MinGW_32bit-Debug\debug\download cd /apps/goahead get auth.txt close bye quit
這樣就實現了文件的下載。
這里詳細說明一下
@echo off 關閉回顯
ftp -s:$PATH ftp命令
open 10.1.26.11 建立指定ftp服務器連接,可指定連接端口
binary 設置文件傳輸模式為binary,缺省為ascii。binary模式不會對數據進行任何處理,ascii模式會將回車換行
轉換為本機的回車字符。關於binary和ascii傳輸模
prompt off 下載 prompt on 上傳
lcd local-dir:將本地工作目錄切換至local-dir(注意windows路徑和linux路徑的區別)
cd remote-dir:進入遠程主機目錄remote-dir
mget *.gz 批量下載gz結尾文件 mput *.gz 批量上傳gz結尾文件 我這里批量測試始終失敗,不知什么原因,最后選擇單個文件下載上傳
close 中斷與遠程服務器的ftp會話
bye 退出ftp會話過程
quit 退出
同理類似得到linux下的shell腳本:
#!/bin/bash ftp -niv <<- EOF open 10.1.26.11 user root root ascii cd /apps/goahead lcd ./ prompt off get auth.txt close bye EOF
至此,通過windows腳本,linux腳本從ftp服務器上傳和下載文件完成,通過測試。