【问题标题】:How to handle [Errno -2] in paramiko?如何在 paramiko 中处理 [Errno -2]?
【发布时间】:2017-07-09 16:13:03
【问题描述】:

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

“[Errno -2] 名称或服务未知”

这会导致脚本在中间中断。我该如何处理这个异常?我已经使用了 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 中

【问题讨论】:

    标签: python python-2.7 error-handling server paramiko


    【解决方案1】:

    如果您希望脚本继续循环中的下一个地址,则需要将 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-30
      • 1970-01-01
      • 2021-12-23
      • 2017-12-07
      • 2013-02-12
      • 1970-01-01
      • 2016-08-28
      • 2019-03-09
      相关资源
      最近更新 更多