天天看點

Linux實作FTP上傳下載下傳

分享知識 傳遞快樂

lftp支援FTP、SETP、HTTP和FTPs等多種檔案傳輸協定。 還支援FXP,允許資料繞過用戶端直接在兩個FTP伺服器之間傳輸。

同時還有遞歸鏡像整個目錄樹以及斷點續傳下載下傳的功能, lftp的傳輸任務可以安排時間段計劃執行,可以限制帶寬和建立傳輸清單,支援類似Unix shell的任務控制。

下面舉例看一下FTP下載下傳的指令:

#!/bin/sh
lftp -u guest,1234567 sftp://10.1.1.100:22<<EOF
cd /home/guest/test/data/2019101900
lcd /home/guest/test/temp
get continuous_apply.zip
by
EOF      

解析:

  • lftp -u <使用者名>,<密碼> sftp://<IP>:<端口>
  • EOF隻是一個分界符标志 也可以使用EOM
  • cd是在遠端主機目錄操作的指令
  • lcd是在本地主機目錄操作的指令
  • get就擷取單個檔案下載下傳

如果某個目錄下有一個檔案可以使用ftp指令:

get xxx

如果是某個目錄下有多個檔案(且不需要擷取目錄下子檔案夾下的内容):

mget *

如果是某個目錄下有子目錄希望擷取所有子目錄:

wget -nH -m --ftp-user=myusername--ftp-password=mypassword ftp://ip/Temp/publish/wrapper/

執行後,會将wrapper目錄下的子目錄及檔案全部擷取到/Temp/publish/wrapper路徑下。

總結一下常用的FTP指令:

  1. open:與伺服器相連接配接;
  2. send(put):上傳檔案;
  3. get:下載下傳檔案;
  4. mget:下載下傳多個檔案;
  5. cd:切換目錄;
  6. dir:檢視目前目錄下的檔案;
  7. del:删除檔案;
  8. bye:中斷與伺服器的連接配接

如需了解完整的上傳下載下傳腳本,請參考以下兩篇文章:

​​Shell實作FTP上傳檔案,并儲存執行日志​​

​​Shell實作FTP下載下傳檔案,并儲存執行日志​​

如果沒有FTP指令或FTP功有受限時,還可以使用SCP指令實作檔案互動:

​​Linux不用FTP指令的情況下實作檔案互動(SCP指令傳輸)​​

繼續閱讀