我想要首次尝试 Rsync 但遇到了困难。
我想将文件从远程服务器传输到本地服务器。
我登录到本地服务器并输入:
sudo rsync -avz ssh [email protected] /var/www/html/mywebsite.co.uk /var/www/html/
这意味着我想要将文件夹“mywebsite.co.uk”从远程服务器复制到本地服务器上的 /var/www/html 文件夹中。
两台服务器都配置为使用相同的 ssh 密钥。
我收到以下错误:
sending incremental file list
rsync: link_stat "/var/www/html/ssh" failed: No such file or directory (2)
rsync: link_stat "/var/www/html/[email protected]" failed: No such file or directory (2)
sent 55 bytes received 13 bytes 136.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1070) [sender=3.0.9]
有人能帮助我理解这些错误吗?
提前致谢!
答案1
你的语法不正确。应该是
sudo rsync -avz -e ssh [email protected]:/var/www/html/mywebsite.co.uk /var/www/html/
缺少 ssh 的 -e 操作符。而且 IP 地址后面需要有冒号。
答案2
使用以下方式指定远程位置时SSH(需要-e ssh
,否则它将使用 rsync 自己的协议并需要在另一端启动 rsync 服务器/守护进程),您必须按照以下模式编写它:
[user@]short_name[.domain]:[path]
如果您省略,user@
它将假定远程用户与本地计算机上使用的用户相同;如果省略,.domain
它将使用您的域搜索设置(与任何其他名称解析一样);如果省略,path
它将使用远程用户的主目录(注意:它与写入相同user@server:~
)
所以在这里,你只需要用冒号替换空格
:
,就像 Grumpy 在他的回答中所写的那样。
答案3
尝试以下语法
rsync -e ssh -avz [email protected]:/var/www/html/mywebsite.co.uk [email protected]:/var/www/html/
如果需要,您还可以包含 ssh 密钥和端口
rsync -e "ssh -p PORT_NO -i path_to_file" -avz [email protected]:/var/www/html/mywebsite.co.uk [email protected]:/var/www/html/