天天看點

linux中下載下傳ftp檔案的幾個方法

一、最簡單的方法: wget

下面的指令用來下載下傳ftp伺服器上指定目錄的所有檔案

wget ftp://IP:PORT/* --ftp-user=xxx --ftp-password=xxx -r
           

-r 參數表示遞歸下載下傳;

可以使用--directory-prefix=/mypath/ 指定下載下傳後存儲路徑;-nH選項可以不在本地建立伺服器上的目錄結構

另一個令人迷惑的選項是--delete-after,它并不是用來删除伺服器上的已下載下傳檔案,而是用來删除本機的;

wget之是以是wget而不是wput,它隻能進行下載下傳操作,不支援對ftp伺服器上的任何寫操作,比如删除。

二、可以删除檔案的方法:lftp

項目需求是下載下傳ftp伺服器上的指定檔案夾取内的所有檔案,并于下載下傳後删除,wget不能滿足要求,于是改寫出下面的腳本。

mget指令可以下載下傳多個檔案,-E參數表示下載下傳後删除伺服器上的檔案。

#!/bin/bash
#指定ftp伺服器的ip
serverip=1.2.3.4
#指定ftp伺服器的ftp使用者
serveruser=root
#指定ftp伺服器的ftp使用者密碼
serverpass=123456
#指定client主機本地下載下傳檔案存放的目錄
localdir=./data
logfile=../log/ftp_download.log
#指定server主機的ftp目錄
remotedir=./
#指定server主機的主機名
host=test_host
#切換到本地下載下傳檔案存放的目錄
cd $localdir
#輸入開始備份的資訊
echo "Starting FTP Download on " $host
#連接配接ftp伺服器
/usr/bin/lftp << EOF
open $serverip
user $serveruser $serverpass
#切換到server主機的ftp目錄
echo "cd " $remotedir
cd $remotedir
#列出ftp伺服器ftp目錄中檔案清單并存放到client中的$localdir中
ls . >> $logfile
#下載下傳ftp伺服器ftp目錄中的所有檔案
mget -E *.txt
#退出ftp伺服器
bye
           

三、其他方法

系統中的ftp指令,和強大的curl。

curl支援FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET 和TFTP,友善在自己的程式中調用。同時支援cookie、代理、密碼和證書驗證。非常強大。

下一篇: FTP設定

繼續閱讀