Python 如何在为下面的代码使用结构时添加超时?

Python 如何在为下面的代码使用结构时添加超时?,python,invoke,fabric,linux-df,Python,Invoke,Fabric,Linux Df,代码如下。我会在这里解释 我使用fabric检查2服务器的装载点状态。命令是 df -h /mnt 这个命令的问题是它可能永远挂在那里,因此结构代码将永远挂起。 我认为一些超时机制可以解决这个问题。但是我没有在布料上找到它。这有什么背景吗 import fabric from fabric import ThreadingGroup as Group directory = '/mnt' group = Group('server1', 'server2', user='someuser',

代码如下。我会在这里解释

我使用fabric检查2服务器的装载点状态。命令是

df -h /mnt
这个命令的问题是它可能永远挂在那里,因此结构代码将永远挂起。 我认为一些超时机制可以解决这个问题。但是我没有在布料上找到它。这有什么背景吗

import fabric
from fabric import ThreadingGroup as Group

directory = '/mnt'
group = Group('server1', 'server2', user='someuser', connect_kwargs={'password':'somepassword'})
try:
    result = group.run("df -h %s" % directory)
except fabric.exceptions.GroupException as e:
    err = e
    pass
选项1:使用bash timeout停止命令
timeout 10 df-h

选项2:使用
run
函数的。超时以秒为单位指定,如果命令超时,则引发
CommandTimeout
异常

Group.run

执行
连接。在所有成员连接上运行

包装支持SSH的
invoke.runners.Runner.run实现
;有关详细信息,请参阅其文档

选项1:使用bash timeout停止命令
timeout 10 df-h

选项2:使用
run
函数的。超时以秒为单位指定,如果命令超时,则引发
CommandTimeout
异常

Group.run

执行
连接。在所有成员连接上运行

包装支持SSH的
invoke.runners.Runner.run实现
;有关详细信息,请参阅其文档