2010-06-09 82 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 
相关问题