从服务器复制时我总是使用以下命令:
rsync --progress -avze ssh user@host:/path/to/files ./here
然而,我的一个朋友告诉我,我可以简单地这样做:
rsync --progress -avz user@host:/path/to/files ./here
所以问题是,如果你不需要-e ssh
它为什么还在那里?
答案1
任何时候,如果您需要除用户和主机之外的 ssh 命令的其他选项,那么您需要 -e 标志。也许您正在连接的服务器有 ssh 在端口 2222 上监听。
rsync -e 'ssh -p 2222' /source usr@host:/dest
解决这个问题的另一种方法是使用 2 个文件。 /etc/ssh/ssh_config
或者~/.ssh/config
配置文件使用与 相同的格式ssh_config
。只是可以根据每个用户进行配置!
答案2
您不需要 -e ssh 即可使用 ssh。事实上,如果您将目标指定为 user@host:/path/to/files,则默认情况下会使用 ssh。它保留在 a) 中,出于兼容性原因;b) 极端情况下,您可能同时使用 rsyncd 和 ssh 主机。
答案3
-e
如果您使用非默认私钥位置,即通过 指定私钥,您还需要-e 'ssh -i /path/to/private/key/file.pem'
。就此而言,sshd 的非默认监听端口也是如此。基本上,-e
如果仅使用ssh user@host
不起作用,请使用。
答案4
READ IT -> i looked this konweledge and after many expirence i get aware
哇啊:
一个重要的想法是:rsync 使用 ssh 连接在 destiny 和 source 上准备文件列表“LOCAL”,就像他在机器上一样,
NFS 询问“网络”目的地和源之间的每一个文件,如果服务器距离较远,这会使速度变得非常慢。
与 nfs 文件相比,在两台服务器之间使用 rsync 只需要花费几毫秒的时间,
NFS 也通过数据中心的这个端口进行传输,比 22 端口的 ssh 更快