我有脚本可以登录多个服务器并获取输出。在登录过程中,一些服务器会抛出此错误:
"[Errno -2] Name or service not known"
这会导致脚本中途中断。我该如何处理这个异常?我已经使用了 try/except 但它似乎不起作用:
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ip = open("files.txt","r")
data = ip.readlines()
try:
for ips in data:
ips = ips.strip("\n")
ssh.connect(ips,username='Lock',password='Key',timeout=10)
chan = ssh.get_transport().open_session()
chan.get_pty()
chan.exec_command("uname -a")
result = [chan.recv(1024)]
except Exception as e:
print e
注意:服务器名称保存在files.txt中
最佳答案
如果您希望脚本继续循环中的下一个地址,则需要将 try/except 放在 for 循环内:
for ips in data:
try:
ips = ips.strip("\n")
ssh.connect(ips, username='Lock', password='Key', timeout=10)
...
except Exception as e:
print e
关于python - 如何处理paramiko中的[Errno -2]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42343603/