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()转载
时间: 2024-11-05 18:59:33

python paramiko 多线程的相关文章

python paramiko多线程批量修改主机账号密码

#!/usr/bin/env python #-*- coding:utf:8 -*- import paramiko,time,threading def reset_passwd(line): try: test=paramiko.Transport((line.split()[0],22)) test.connect(username='username',password='password') chan=test.open_session() chan.settimeout(5) ch

python paramiko 多线程批量执行指令及批量上传文件和目录

源代码: https://github.com/jy1779/be.git 环境需求: 1.python3 2.paramiko pip install --upgrade pip apt-get install libssl-dev pip3 install paramiko 3.执行权限 chmod +x becmd.py ln -s /root/be/bin/becmd.py /usr/local/sbin/becmd chmod +x besync.py ln -s /root/be/b

Python实现多线程HTTP下载器

本文将介绍使用Python编写多线程HTTP下载器,并生成.exe可执行文件. 环境:windows/Linux + Python2.7.x 单线程 在介绍多线程之前首先介绍单线程.编写单线程的思路为: 解析url: 连接web服务器: 构造http请求包: 下载文件. 接下来通过代码进行说明. 解析url 通过用户输入url进行解析.如果解析的路径为空,则赋值为'/':如果端口号为空,则赋值为"80":下载文件的文件名可根据用户的意愿进行更改(输入'y'表示更改,输入其它表示不需要更

python的多线程到底有没有用?

在群里经常听到这样的争执,有人是虚心请教问题,有人就大放厥词因为这个说python辣鸡.而争论的核心无非就是,python的多线程在同一时刻只会有一条线程跑在CPU里面,其他线程都在睡觉.这是真的吗? 是真的.这个就是因为传说中的GIL(全局解释锁)的存在.不明白这个词的可以去百度一下,我解释不好(大家都是程序猿你懂的,我写错一个词就要挨喷了,就算我没写错对方理解错了,我也一样要挨喷).有了这样一个看似bug的存在,就导致了上面说的情况:同一时刻内,python的线程只有一条在CPU里面运行.

python之多线程

声明:示例来源<python核心编程> 前言 单线程处理多个外部输入源的任务只能使用I/O多路复用,如:select,poll,epoll. 特别值得注意的是:由于一个串行程序需要从每个 I/O 终端通道来检查用户的输入,程序在读取 I/O 终端通道时不能阻塞,因为用户输入的到达时间是不确定的,并且阻塞会妨碍其他 I/O 通道的处理. select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责

python paramiko模拟ssh登录

Python Paramiko模块的安装与使用详解 http://www.111cn.net/phper/python/67973.htm wget http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/pycrypto-2.6.tar.gz tar -zxvf pycrypto-2.6.tar.gz cd pycrypto-2.6/ python setup.py build python setup.py install 进入python import

Python的多线程和多进程模块对比测试

本文主要对比测试Python的多线程和多进程模块在CPU类型和I/O的任务操作时的效率 一 测试CPU消耗类型任务 在一台多核CPU的服务器上执行多线程代码,理论上代码执行时会利用多余的CPU核心来提升性能.但是由于Python的GIL的存在,使用多线程来执行CPU繁重的任务,未必能得到性能提升.但是GIL又必不可少,因为在Python解释器中执行线程是不安全的,也就是说为了保证Python线程执行时的安全,Python提供了一个全局锁,同一时刻,只允许一个线程获得这个全解锁并执行. CPU消耗

自动化测试框架解析2-----关于python的多线程问题

在阅读代码的时候,碰到了python中多线程的问题.在这里做一个记录 mport time  import threading def movie(func): for i in range(2): print "I am watching movie <%s>, time:%s"%(func,time.ctime()) time.sleep(5) def music(func): for i in range(2): print "I am listennig 

Python threading多线程编程示例

Python 的多线程有两种实现方法: 函数,线程类 1.函数 调用 thread 模块中的 start_new_thread() 函数来创建线程,以线程函数的形式告诉线程该做什么 # -*- coding: utf-8 -*- import thread def f(name): #定义线程函数 print "this is " + name if __name__ == '__main__': thread.start_new_thread(f, ("thread1&qu