1、最簡單的方法: wgetbash
下面的命令用來下載ftp服務器上指定目錄的全部文件服務器
- wget ftp://IP:PORT/* --ftp-user=xxx --ftp-password=xxx -r
-r 參數表示遞歸下載;cookie
可使用--directory-prefix=/mypath/ 指定下載後存儲路徑;-nH選項能夠不在本地建立服務器上的目錄結構curl
另外一個使人迷惑的選項是--delete-after,它並非用來刪除服務器上的已下載文件,而是用來刪除本機的;url
wget之因此是wget而不是wput,它只能進行下載操做,不支持對ftp服務器上的任何寫操做,好比刪除。代理
2、能夠刪除文件的方法:lftpserver
項目需求是下載ftp服務器上的指定文件夾取內的全部文件,並於下載後刪除,wget不能知足要求,因而改寫出下面的腳本。遞歸
mget命令能夠下載多個文件,-E參數表示下載後刪除服務器上的文件。ip
- #!/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
3、其餘方法rem
系統中的ftp命令,和強大的curl。
curl支持FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET 和TFTP,方便在本身的程序中調用。同時支持cookie、代理、密碼和證書驗證。很是強大。