python - 如何处理paramiko中的[Errno -2]?

标签 python python-2.7 error-handling server paramiko

我有脚本可以登录多个服务器并获取输出。在登录过程中,一些服务器会抛出此错误:

"[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/

相关文章:

python - 具有周期性边界条件的二维插值

python - 如何以编程方式创建 Page 并设置其 StreamField 值?

python - 如何对拟合参数施加约束?

python - python 中循环条件出错时如何继续?

python - 事件流中的匿名参与者

python - 为什么运行这个 python 脚本会占用我所有的磁盘空间?

python - 使用python将IP范围划分为1024 block

python - 如何使用 python 修改配置文件?

python - 如果数据库连接失败,如何写入文件

python - Python字典对对象方法的理解