linux中下載ftp檔案的幾個方法
阿新 • • 發佈:2019-01-23
一、最簡單的方法: 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、代理、密碼和證書驗證。非常強大。