您的位置:首页 > 编程语言 > Python开发

python paramiko 多线程

2015-06-08 15:55 796 查看
Python paramiko多线程执行命令的脚本,加入了threading多线程,执行起来感觉效率很一般,有时候线程还会等待延迟。

据说别人测试的数据,Python多线程中每个时刻只有1个线程运行,每个逻辑CPU利用率都很低,只是有时候换换CPU运行。虽然不知道别人怎么观察的,不过执行起来确实慢,耗资源也比单线程高很多。

#!/usr/bin/python
# -*- coding: utf-8 -*-
import paramiko,threading,sys
class 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()
转载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: