標籤:
Python paramiko多線程執行命令的指令碼,加入了threading多線程,執行起來感覺效率很一般,有時候線程還會等待延遲。
據說別人測試的資料,Python多線程中每個時刻只有1個線程運行,每個邏輯CPU利用率都很低,只是有時候換換CPU運行。雖然不知道別人怎麼觀察的,不過執行起來確實慢,耗資源也比單線程高很多。
#!/usr/bin/python# -*- coding: utf-8 -*-import paramiko,threading,sysclass SSH_cmd(threading.Thread): hostname=‘‘ cmd=‘‘ username=‘‘ passwd=‘‘ port=‘‘ def run(self): ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) try: ssh.connect(hostname=self.hostname,port=self.port,username=self.username,password=self.passwd,timeout=10) except Exception,e: print ‘connnet to %s is timeout ‘ % self.hostname sys.exit() cmd=self.cmd stdin,stdout,stderr=ssh.exec_command(cmd) if not stdout: print ‘%s is OK‘ % self.hostname else: print stdout.read()def Init(): File=open(‘cmd.conf‘) Flist=[] for i in File.readlines(): if not i.strip(): continue Flist.append(i) print Flist return Flist File.close()if __name__=="__main__": A=Init() #excmd=raw_input(‘Enter your command:‘) #expasswd=raw_input(‘Enter your password:‘) for i in xrange(len(A)): cut=A[i].split() HOST=cut[0] CMD=SSH_cmd() CMD.hostname=HOST CMD.username=cut[1].strip() CMD.cmd=cut[4] CMD.port=int(cut[2]) CMD.passwd=cut[3].strip() CMD.start()
轉載
python paramiko 多線程