多线程查系统(类的继承)

import threading                                                                         
import paramiko                                                                          
from paramiko.ssh_exception import NoValidConnectionsError,AuthenticationException       
class unameThread(threading.Thread):                                                     
    def __init__(self,cmd,hostname,port=22,user='root'):                                 
        super(unameThread, self).__init__()                                              
        self.cmd = cmd                                                                   
        self.hostname = hostname                                                         
        self.port = port                                                                 
        self.user = user                                                                 
    def run(self):                                                                       
        client = paramiko.SSHClient()                                                    
        private_key = paramiko.RSAKey.from_private_key_file('hhh.py')                    
        client.set_missing_host_key_policy(paramiko.AutoAddPolicy())                     
        try:                                                                             
            client.connect(hostname=self.hostname,                                       
                           port=self.port,                                               
                           username=self.user,                                           
                           pkey=private_key)                                             
            stdin, stdout, stderr = client.exec_command(self.cmd)                        
        except NoValidConnectionsError as e:                                             
            print("%s连接失败" % (self.hostname))                                            
        except AuthenticationException as e:                                             
            print("%s密码错误" % (self.hostname))                                            
        except TimeoutError as e:                                                        
            print("%s连接超时" % (self.hostname))                                            
        else:                                                                            
            result = stdout.read().decode('utf-8')                                       
            print("%s运行结果:" % (self.hostname), result)                                   
        finally:                                                                         
            client.close()                                                               
def use_thread():                                                                        
    threads = []                                                                         
    for count in range(254):                                                             
        host = '172.25.254.%s' % (count + 1)                                             
        t = unameThread("uname",host)                                                    
        threads.append(t)                                                                
        t.start()                                                                        
    _ = [thread.join() for thread in threads]                                            
    print("任务执行结束.....")                                                                 

if __name__=="__main__":                                                                 
    use_thread()                                                                         

这里写图片描述

猜你喜欢

转载自blog.csdn.net/dzh1125641239/article/details/82714064