如果没有输入或密码错误,如何跳过登录密码提示.. 我有下面的python结构代码..它工作正常,但卡住了错误的密码..
import sys
from fabric.api import *
env.skip_bad_hosts=True
env.command_timeout=60
env.user = 'test'
env.shell = "/bin/sh -c"
env.warn_only = True
env.password = 'mypass'
def read_hosts():
env.hosts = [line.strip() for line in sys.stdin.readlines()]
def cyberark():
with settings(warn_only=True):
output=sudo("/monitor.sh",shell=False)
当我运行它时,它就站在那里直到我手动打破它......
[pc-karn] Executing task 'cyberark'
[pc-karn] sudo: /monitor.sh
[pc-karn] Login password for 'test':
无论如何设置env,如果密码错误连续2个序列,那么它将转到下一个主机。
答案 0 :(得分:0)
您可以使用此参数 -
with settings(abort_on_prompts=True):
此参数在提示用户输入时终止程序。你可以阅读它here。
我不知道这是否能解决您的问题,据我所知,您所寻找的Fabric是不可能的,但至少您知道您的程序总是终止,并且可以解决密码问题。
答案 1 :(得分:0)
当我想避开密码提示但是在失败时继续我的脚本时,我使用SystemExit
并捕获abort_on_prompt引发的try :
with settings(abort_on_prompts=True):
output=sudo("/monitor.sh",shell=False)
except SystemExit as se :
print "What I want to do when it fails"
异常。
{{1}}