2017-02-20 24 views
1

У меня есть сценарий для входа на несколько серверов и получения вывода. Во время входа в систему несколько серверов выбрасывают эту ошибку:Как справиться с [Errno -2] в paramiko?

"[Errno -2] Name or service not known"

Это приводит к разрыву сценария в середине. Как я могу обработать это исключение? Я использовал Try/за исключением уже, но это не похоже на работу:

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

ответ

1

Если вы хотите, чтобы скрипт для продолжения следующего адреса в петли, вам нужно поставить свою попытку/исключая внутреннюю часть цикла обработки:

for ips in data: 
    try: 
     ips = ips.strip("\n") 
     ssh.connect(ips, username='Lock', password='Key', timeout=10) 
     ... 
    except Exception as e: 
     print e