我使用pythonfabric中的run命令远程执行脚本。在
C = fabric.Connection('ip', user='user', connect_kwargs={"password": "password"})
try:
r = C.run('python3 ~/script.py')
if r:
print('{} SUCCESS'.format(C.host))
break
else:
print('{} ERROR'.format(C.host))
break
except:
print('{} ERROR'.format(C.host))
我的脚本.py是:
^{pr2}$当我执行一个run命令时,有没有办法查看函数中返回的值是1还是0?在
谢谢你!在
根据fabric2.x文档,默认情况下,结果是在result的}属性下捕获并提供的:http://docs.fabfile.org/en/2.0/getting-started.html#run-commands-via-connections-and-run
stdout
和{run
命令返回一个^{所以您需要检查
exited
/return_code
属性。在但是,脚本不会随函数的返回代码一起退出。为此,您需要使用该值
sys.exit
,因此将下载文件更改为:会从download_file函数获取返回代码。您需要在脚本上
import sys
,以确保您有sys
模块可用。在当程序以非零退出代码失败时,将抛出
^{pr2}$UnexpectedExit
异常。为了在这种情况下获得退出代码,您可以(a)捕获异常,或者(b)将参数warn=True
传递给run命令,因此run命令如下所示:相关问题 更多 >
编程相关推荐