假设我按以下方式使用 rsync:
rsync user@server:/path/to/file1 user@server:/path/to/file2 /local/directory
将 file1 和 file2 从远程服务器复制到本地目录。在这种情况下,rsync 是否建立两个单独的 ssh 连接(每个文件一个)来复制这两个文件,还是建立一个 ssh 连接并根据需要保持打开状态?
答案1
您可以自己简单地测试一下,这将为您提供适用于正在使用的 rsync 的特定版本的有效答案:
rsync -e $'sh -x -c \'exec ssh "$@"\' _' \
user@server:/path/to/file1 user@server:/path/to/file2 /local/directory
(请注意,$''
上面使用的语法是 ksh 或 bash 中可用的扩展,但不适用于/bin/sh
)。
sh -x
您将看到为正在运行的每个命令记录的一行ssh
。如果只有一个ssh
命令,那么您的特定版本的 rsync 能够重用该连接。 (在我自己的 3.1.2 版本测试中似乎就是这种情况)。