【问题标题】:How to force reconnecting with Fabric如何强制重新连接 Fabric
【发布时间】:2017-10-12 01:22:57
【问题描述】:

我正在使用 python 结构。 每次我对 FreeBSD pf 防火墙进行更改时,Fabric 的现有连接都会中断或挂起,或者我不知道但它不再工作并且脚本挂起。 通常 ssh 连接比这更健壮,有时当您使用防火墙更改某些内容时它们会挂起几秒钟,但使用结构,它们会永远挂起,并且脚本变得无用。 无论如何,即使我的 ssh 连接断开,我也希望 Fabric 创建一个新的 SSH 连接以继续执行我脚本的其他 run 命令。 这是面料的问题。我过去使用过无数其他基于 SSH 的工具,包括我自己的,我没有遇到这个问题。 如何断开并重新连接结构 ssh 连接池?或者将所有连接设置为过期并强制它们重新连接。

如果run 函数在几秒钟后检测到连接不再有效并创建一个新连接会更好,但显然 Fabric 不能那样工作。

【问题讨论】:

    标签: python ssh fabric paramiko reconnect


    【解决方案1】:

    看来:

    from fabric import network
    from fabric.state import connections
    
    def reconnect_current_host():
        network.disconnect_all()
        connections.connect(env.host + ':%s' % env.port)
    

    这很丑陋,但它似乎适用于我一次只与一个主机一起使用的特定脚本。

    【讨论】:

    • 谢谢,这对我有用。我遇到了这个问题,因为我的脚本进行了配置更改,该更改仅在下次登录时生效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-06
    • 2014-12-10
    • 2012-01-27
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多