linux中下載ftp文件的幾個方法

1、最簡單的方法: wgetbash

下面的命令用來下載ftp服務器上指定目錄的全部文件服務器

  1. 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

 

  1. #!/bin/bash  
  2. #指定ftp服務器的ip  
  3. serverip=1.2.3.4  
  4. #指定ftp服務器的ftp用戶  
  5. serveruser=root  
  6. #指定ftp服務器的ftp用戶密碼  
  7. serverpass=123456  
  8. #指定client主機本地下載文件存放的目錄  
  9. localdir=./data  
  10. logfile=../log/ftp_download.log  
  11. #指定server主機的ftp目錄  
  12. remotedir=./  
  13. #指定server主機的主機名  
  14. host=test_host  
  15. #切換到本地下載文件存放的目錄  
  16. cd $localdir  
  17. #輸入開始備份的信息  
  18. echo "Starting FTP Download on " $host  
  19. #鏈接ftp服務器  
  20. /usr/bin/lftp << EOF  
  21. open $serverip  
  22. user $serveruser $serverpass  
  23. #切換到server主機的ftp目錄  
  24. echo "cd " $remotedir  
  25. cd $remotedir  
  26. #列出ftp服務器ftp目錄中文件列表並存放到client中的$localdir中  
  27. ls . >> $logfile  
  28. #下載ftp服務器ftp目錄中的全部文件  
  29. mget -E *.txt  
  30. #退出ftp服務器  
  31. 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、代理、密碼和證書驗證。很是強大。

相關文章
相關標籤/搜索