2017-02-20 80 views
1

我有腳本登錄到多個服務器並採取輸出。在登錄過程中,幾臺服務器拋出此錯誤:如何處理paramiko中的[Errno -2]?

"[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循環內:

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