【问题标题】:Reducing SSH connections减少 SSH 连接
【发布时间】:2013-07-04 19:02:03
【问题描述】:

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

但是,除了传输之外,我还需要在事前和事后做一些内务处理,这涉及到一个额外的ssh 命令,以及对scp 的调用以传输一些未包含在@987654325 中的额外数据@transfer(我在传输过程中生成此数据)。

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

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

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

【问题讨论】:

    标签: shell ssh


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2013-08-25
      • 2018-08-31
      • 2018-02-08
      • 2021-01-12
      • 2016-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多