我想将所有文件和文件夹从一台主机复制到另一台主机。旧主机上的文件位于 /var/www/html 并且我只能通过 FTP 访问该服务器,我无法对所有文件进行 TAR。通过 FTP 定期连接到旧主机会将我带到 /home/admin 文件夹。
我尝试从我的新服务器运行以下命令:
wget -r ftp://username:password@ip.of.old.host
Run Code Online (Sandbox Code Playgroud)
但我得到的只是一个编造的 index.html 文件。
通过 FTP 递归使用 wget 的正确语法是什么?
Dav*_*ney 144
尝试-m
了--mirror
wget -m ftp://username:password@ip.of.old.host
Run Code Online (Sandbox Code Playgroud)
小智 44
你说得对,你只需要在末尾加上一个 * :
wget -r ftp://username:password@1.2.3.4/dir/*
Run Code Online (Sandbox Code Playgroud)
对于共享服务器,您可以这样使用:
wget -r ftp://1.2.3.4/dir/* --ftp-user=username --ftp-password=password
Run Code Online (Sandbox Code Playgroud)
因为大多数共享服务器都有类似于 username@hostname 的 ftp-username,所以,第一个 wget 命令不起作用,第二个命令工作正常。
除了 wget,您还可以在脚本模式下使用lftp。下面的命令会将给定远程 FTP 目录的内容镜像到给定的本地目录中,并且可以将其放入 cron 作业:
lftp -c 'open <hostname>; user <username> <password>; mirror -e <remote-src-path> <local-dest-path>; quit'
Run Code Online (Sandbox Code Playgroud)
它自动处理目录中的递归,并允许指定远程源起始目录以从中下载数据。
小智 7
检查下面的 wget 命令以递归地从 FTP 下载数据。
wget --user="<user-name>" --password="<password>" -r -np -nH --cut-dirs=1 --reject "index.html*" "<URL to download files>"
Run Code Online (Sandbox Code Playgroud)
-r
: 用于递归下载。
-np
: 是为了没有父母升序。
-nH
: 用于禁止创建与 URL 名称相同的目录,即 abc.xyz.com
--cut-dirs
: 用于忽略父目录的数量。对于您的命令,此选项的值会有所不同。
可以通过执行上面的命令来检查。
归档时间: |
|
查看次数: |
285559 次 |
最近记录: |