python - 如何在 Fabric 2 中等待 shell 脚本重新启动

标签 python fabric

我正在使用 Fabric 2,并且尝试在多个主机上按顺序运行 shell 脚本。在脚本中,它配置一些设置并重新启动该主机。然而,当我运行我的任务时,它会在第一个主机上运行脚本后结束(我猜测是因为 SSH 连接由于重新启动而终止)。我尝试将“warn_only”设置为 True,但我不知道在 Fabric 2 上的何处设置此值。

添加:

with settings(warn_only=True):

抛出“NameError:全局名称'设置'未定义”错误。

warn_only 是否有正确的格式?如果在 Fabric 2 中还不可能,有没有办法继续运行我的任务,无论是否重新启动?

我的脚本:

from fabric import *
import time
import csv

@task
def test(ctx):

    hosts = ['1.1.1.1', '2.2.2.2']

    for host in hosts:
        c = Connection(host=host, user="user", connect_kwargs={"password": "password"})

        c.run("./shell_script.sh")

        configured = False

        while not configured:
            result = c.run("cat /etc/hostname")
            if result != "default": configured = True
            time.sleep(10)

最佳答案

因此,解决方法是使用 -w 标志运行任务,这将启用 warn_only 并为我提供所需的功能。不过,如果能够在代码中设置此属性会更好。

关于python - 如何在 Fabric 2 中等待 shell 脚本重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56264563/

相关文章:

python - 将列表附加到字典

python - Matplotlib pyplot 线条不是通过动画绘制的

python - Fabric / python : AttributeError: 'NoneType' object has no attribute 'partition'

python - 将不同的参数传递给 Fabric 中的不同主机

python - Fabric 正在使用 pty=False 阻止命令

python - 将整数中的奇数位相加

python - GLPK线性规划

python - 当列名是整数时索引 pandas 数据框

python - 运行后台进程,然后在进行一些中间处理后将其终止

python - hg 使用 fabric 从 bitbucket 中拉出