下午 4:15(3 分钟前)
你好,
我想知道是否有一种方法可以不使用 send_pexpect 来验证主机。我有数百个 IP,我需要验证我的 tacacs 用户名是否有效,如果无效,则等待评论。我遇到的问题是,我无法验证期望是由于我的凭据还是主机未启动。
i=0 而 i
try:
conn = SSH2(verify_fingerprint = False)
conn.connect(allips)
conn.login(usuario)
adding = allips, "goods"
print adding
lista_buena.append(allips)
#time.sleep(1)
except:
adding2 = allips,"NOT GOOD"
print adding2
lista_mala.append(adding2)
i += 1
谢谢,
答案1
有一个很棒的答案锡尔瓦多
引用的代码与您要执行的操作非常相似。它们使用 paramiko.SSHClient 库给出了一个很好的示例。
https://stackoverflow.com/questions/14236346/elegant-way-to-test-ssh-availability
如果这不起作用,也可以选择使用子进程 + OpenSSH: https://gist.github.com/bortzmeyer/1284249
您可能希望调整计时器和异常处理以提高性能。如果您只处理几百个节点,这样的串行代码就很棒,但是当您处理 10K 或更高节点时,我建议使用 parallel-ssh。
仅我的 $.02 (^_^) 祝你好运!
答案2
或者你也可以使用:
try:
conn = Telnet(logfile = logfiles, verify_fingerprint = False)
conn.connect(allips)
try:
conn.login(usuario)
print "SUCCESS: " + allips
filename.write('SUCCESS ' + allips)
filename.write("\n")
filename.write("************ \n")
time.sleep(2)
except:
print "Not Priviledge: " , allips
filename.write('Not Priviledge ' + allips)
filename.write(" \n")
filename.write("************ \n")
except:
#print allips + "NO HOST"
print "Not Enabled: ", allips
filename.write('Not Priviledge ' + allips)
filename.write(" \n")
filename.write("************ \n")
filename.close()
time.sleep(2)