Linux 从FTP服务器下载所有文件

Linux 从FTP服务器下载所有文件,linux,ftp,debian,Linux,Ftp,Debian,我需要下载从FTP服务器到其他服务器上托管的所有内容。我只能访问下载文件的服务器。如何使用Linux FTP命令下载每个文件,并在此过程中为它们创建所需的目录?以这种方式使用wget(m表示镜像): 如果用户名或密码包含特殊字符,则可能需要使用以下格式: wget -m --user=username --password=password ftp://ip.of.old.host 另外,我还发现了一个示例,它向您展示了如何在Debian中使用ncftp。如果尚未安装ncftp,则需要对新服务

我需要下载从FTP服务器到其他服务器上托管的所有内容。我只能访问下载文件的服务器。如何使用Linux FTP命令下载每个文件,并在此过程中为它们创建所需的目录?

以这种方式使用
wget
(m表示镜像):

如果用户名或密码包含特殊字符,则可能需要使用以下格式:

wget -m --user=username --password=password ftp://ip.of.old.host
另外,我还发现了一个示例,它向您展示了如何在Debian中使用ncftp。如果尚未安装ncftp,则需要对新服务器进行root访问

简言之:

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

一些FTP服务器允许下载整个目录,方法是在其名称后面加上.tar或.tgz后缀。然后服务器创建该目录的存档。

另一种方法是使用
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
#/bin/bash

谢谢。事实上,在看到这个之前我自己就找到了。前五次没有使用正确的谷歌搜索词。如果你收到一条“坏端口”错误消息,你可能有一个电子邮件地址作为用户名(互联网越来越奇怪了),并且@使wget混淆。Try:wget-m——user-some。email@example.com--password myPassword当密码末尾有“@”时,此选项不起作用。有替代方案吗?此解决方案不获取子目录内容
#! /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