zoukankan      html  css  js  c++  java
  • python paramiko 多线程

    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()
    转载
  • 相关阅读:
    Maven错误recv failed
    eclipse集成tomcat修改字符集参数
    eclipse luna 无法安装veloeclipse问题
    TortoiseSVN忽略文件夹
    类之特性
    __new()__与__init__()
    flask中models设计
    flask读书记录
    JS中的event 对象详解
    redis 持久化 RDB
  • 原文地址:https://www.cnblogs.com/zhzhao/p/4561161.html
Copyright © 2011-2022 走看看