2010-06-09 81 views
26

我需要將所有內容從FTP服務器下載到不同的服務器上。我只對我正在下載文件的服務器有shell訪問權限。如何使用Linux FTP命令下載每個文件,並在此過程中創建它們所需的目錄?從FTP服務器下載所有文件

回答

53

使用wget以這種方式(M鏡像):

wget -m ftp://username:[email protected] 

如果您的用戶名或密碼包含特殊字符,則可能需要使用以下格式:

wget -m --user=username --password=password ftp://ip.of.old.host 

另外,我發現this guide它向你展示瞭如何在Debian中使用ncftp。如果ncftp尚未安裝,您將需要root用戶訪問新服務器。

簡而言之:

sudo apt-get install ncftp 
ncftpget –T –R –v –u "ftpuser" ftp.nixcraft.net /home/vivek/backup /www-data 
+0

謝謝。在看到這個之前,我確實已經找到了它自己。前五次沒有使用正確的谷歌搜索條件。 – Navarr 2010-06-09 05:03:51

+3

如果您收到「錯誤的端口」錯誤消息,您可能會有一個電子郵件地址作爲用戶名(互聯網越來越奇怪),並且@令人困惑wget。請嘗試:wget -m --user [email protected] --password myPassword ftp://example.com – 2015-01-05 16:31:02

+0

當密碼最後有'@'時,這不起作用。有其他選擇嗎? – 2015-05-27 01:40:50

1

一些FTP服務器允許通過的.tar或.tgz的後面添加自己的名字,以下載整個目錄。服務器然後創建該目錄的存檔。

1

另一種方法是使用ftp。下面是使用ftp的shell腳本示例:

#! /bin/bash 

ftp -n << 'EOF' 
open ftp.your_ftp_host.com 
quote USER your_username_here 
quote PASS your_password_here 
cd gets 
prompt no 
mget * . 
bye 
EOF 
相關問題