2017-02-20 1 views
1

J'ai un script pour me connecter à plusieurs serveurs et prendre une sortie. Lors de la connexion, quelques serveurs lancent cette erreur:Comment gérer [Errno -2] dans paramiko?

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

Cela provoque la casse du script au milieu. Comment puis-je gérer cette exception? Je l'ai utilisé try/except déjà, mais il ne semble pas fonctionner:

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 

Note: Les noms de serveur sont conservés dans files.txt

Répondre

1

Si vous voulez que le script de continuer avec l'adresse suivante dans la boucle, vous devez mettre votre try/sauf à l'intérieur de la boucle 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