使用 wget 递归下载整个 FTP 目录

使用 wget 递归下载整个 FTP 目录

我想将所有文件和文件夹从一台主机复制到另一台主机。旧主机上的文件位于 /var/www/html,我只能通过 FTP 访问该服务器,无法将所有文件打包成 TAR。通过 FTP 定期连接到旧主机会将我带到 /home/admin 文件夹。

我尝试从我的新服务器运行以下命令:

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

但我得到的只是一个虚构的 index.html 文件。

通过 FTP 递归使用 wget 的正确语法是什么?

答案1

尝试-m--mirror

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

答案2

你说的对,你只需要在末尾加上一个 * :

wget -r ftp://username:[email protected]/dir/*

对于共享服务器,你可以这样使用:

wget -r ftp://1.2.3.4/dir/* --ftp-user=username --ftp-password=password

因为大多数共享服务器的 ftp 用户名类似于用户名@主机名,所以第一个 wget 命令不起作用,而第二个命令可以正常工作。

答案3

检查下面的 wget 命令以递归方式从 FTP 下载数据。

wget --user="<user-name>" --password="<password>" -r -np -nH --cut-dirs=1 --reject "index.html*" "<URL to download files>"

-r:用于递归下载。

-np:表示无父级上升。

-nH:用于禁止创建名称与 URL 相同的目录,例如 abc.xyz.com

--cut-dirs:用于忽略父目录的数量。此选项的值将因命令而异。

您可以通过执行上述命令来检查。

答案4

您可以使用“curlftpfs - 将 ftp 主机挂载为本地目录”,挂载后,您可以使用“cp -r”等常规文件工具。

相关内容