0

好的,所以我有一个 shell 脚本,用于使用rsyncover将一些文件传输到远程主机ssh

但是,除了传输之外,我还需要在事前和事后做一些整理工作,这涉及到一个额外ssh的 with 命令,以及调用scp传输未包含在传输中的一些额外数据rsync(我在传输进行时生成此数据地方)。

正如您可以想象的那样,目前这会导致很多ssh会话开始和停止,尤其是因为内务操作实际上非常快(通常)。我已经在主机上验证了这显示为许多 SSH 连接和断开连接,虽然与实际传输相比很小,但似乎非常浪费。

所以我想知道的是;有没有办法让我打开一个ssh连接然后让它保持连接直到我完成它?即 - 我的初始ssh内务操作将保持其连接打开,以便在rsync(以及之后scp)运行时它可以使用先前打开的连接来做它的事情。

在 shell 脚本中甚至可能发生这样的事情吗?如果是这样,任何有关如何处理错误的指针(即 - 确保在不需要时关闭连接)也将不胜感激!

4

1 回答 1

0

这是可能的。最简单的方法甚至不需要任何编程。请参阅https://unix.stackexchange.com/questions/48632/cant-share-an-ssh-connection-with-rsync - 总体思路是使用 SSH 连接重用让您的多个 SSH 共享一个会话,然后获取rsync 也可以加入。

困难的方法是自己使用libssh2和编程一切。这将是更多的工作,而且在你的情况下似乎没有什么可推荐的。对于更复杂的场景,它很有用。

于 2013-07-04T11:02:03.890 回答