减少SSH连接

时间:2013-07-04 10:55:28

标签: shell ssh

好的,我有一个shell脚本,可以使用rsync通过ssh将一些文件传输到远程主机。

但是,除了转移之外,我需要事先和之后做一些内务管理,这需要额外的ssh命令,并调用scp来传输一些未包含的额外数据在rsync转移中(我在转移时生成此数据)。

正如您可以想象的那样,这会导致很多ssh个会话开始和停止,特别是因为内务处理操作实际上非常快(通常)。我已经在主机上验证了这是因为大量的SSH连接和断开连接,虽然与实际传输相比很小,但看起来很浪费。

所以我很奇怪;有没有办法我可以打开ssh连接,然后保持连接,直到我完成它为止?即 - 我的初始ssh内务操作将使其连接保持打开状态,以便在rsync(以及之后scp)运行时,它可以使用之前打开的连接来执行其操作。

在shell脚本中是否可以实现这样的功能?如果是这样,任何关于如何处理错误的指针(即 - 确保连接在不需要时关闭)也将受到赞赏!

1 个答案:

答案 0 :(得分:0)

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

困难的方法是使用libssh2并自行编程。这将是一项更多的工作,似乎在你的情况下没有任何建议。对于更复杂的场景,它很有用。

相关问题