如何处理paramiko中的[Errno -2]?
How to handle [Errno -2] in 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
我有脚本可以登录到多个服务器并获取输出。在登录过程中,一些服务器抛出这个错误:
"[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