使用wgetrecursion下载整个FTP目录

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

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

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

但是我得到的只是一个制作好的index.html文件。

通过FTPrecursion使用wget的正确语法是什么?

    尝试-m--mirror

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

    你说得对,你只需要结尾*:

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

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

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

    因为大多数共享服务器都有ftp-username,像username @ hostname,所以第一个wget命令不起作用,第二个命令正常工作。

    除了wget,你也可以在脚本模式下使用lftp 。 以下命令将给定远程FTP目录的内容映射到给定的本地目录,并将其放入cron作业:

     lftp -c 'open <hostname>; user <username> <password>; mirror -e <remote-src-path> <local-dest-path>; quit' 

    它会自动处理recursion到目录,并允许指定远程源起始目录从下载数据。

    您可以使用'curlftpfs – 将ftp主机挂载为本地目录',一旦挂载,就可以使用'cp -r'之类的普通文件工具。

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

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

    -r :用于recursion下载。

    -np :没有父级升序。

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

    --cut-dirs :用于忽略父目录的数目。 这个选项的值会因你的命令而有所不同。

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

    应该尝试工作:

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

    由于recursion深度的原因,使用-m而不是-r。

    http://www.editcorp.com/Personal/Lars_Appel/wget/wget_2.html#SEC11

    使用:

     wget -m ftp://192.168.0.1 

    它会镜像所有的文件和文件夹。

    这是正确的语法。 不知道为什么你没有得到预期的结果。

    和以往一样,有不止一种方法。 试试ncftp,特别是ncftpget

    我可以理解,如果你试图把这个转储到cron或其他东西,但为什么不简单地用你的普通客户端和mget * ftp到服务器? 这可能是一个更快的成功之路。

    正如我所说的,通过FTPlogin需要我到/ home / admin文件夹,我需要的文件在/ var / www / html

    我认为这将适用于你的情况:

     wget -r ftp://192.168.0.1/../../var/www/html 

    我遇到Windows主机与用户名brinkster /用户名,所以wget会抛出一个错误,如果你使用的语法:

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

    要通过这个,使用

     wget -m ftp://brinkster%2Fusername:[email protected] 

    我不得不面对Windows托pipe@ brinkster这个。