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()
    转载
  • 相关阅读:
    Java多线程之Exchanger
    Java8 比AtomicLong更加高效的原子操作LogAdder
    synchronized父子类对象锁重入
    java8 stream多字段排序
    利用java代码给mongo数据库加索引、删除索引等操作
    C++之IO
    C++之类的定义和性质
    C++之动态内存与类型转换
    C++之字符与其他数据类型
    C++之函数与模板
  • 原文地址:https://www.cnblogs.com/zhzhao/p/4561161.html
Copyright © 2011-2022 走看看