为什么不能使用两个遥控器进行 rsync?

为什么不能使用两个遥控器进行 rsync?

serverfault 用户请注意:hynekcer 的四条评论回答了这个已关闭的问题。其他评论也普遍认为这是一个可以定期回答的问题。现在有人投票决定是否重新开放。


当源和目标都是远程时,rsync 会抱怨:

The source and destination cannot both be remote. rsync error: syntax or usage error (code 1) at main.c(1156) [Receiver=3.0.7]

让 rsync 做到这一点是否存在难以克服的技术障碍?还是仅仅是尚未实现?在内存中创建一个本地缓冲区来调解两个远程之间的传输,同时保存哈希值和数据,这似乎相对容易。

答案1

scp -3r <remote src> <remote dest>

做这件事毫无困难。

答案2

为什么不尝试连接到远程机器并从那里开始传输呢?如果您使用 ssh-keys,则可以使用代理传递来为您管理身份验证。

ssh -A remotehostA rsync /remote/file/on/host/a remoteHostB:/destination/

此命令将使您登录到 remoteHostA 并从那里运行 rsync。

答案3

您可以通过使用 挂载一个(或两个)远程文件系统来解决此问题sshfs。然后,rsync 会将其视为本地文件系统。

不幸的是,这将导致使用 挂载文件系统的机器占用大量带宽sshfs,因此我建议只在您和第三台机器之间具有大量带宽的机器上执行此操作。

当然,理想的解决方案是让机器直接相互对话。我想不出任何好的他们不应该这么做的原因。

相关内容