python multiprocessing多进程 ssh

import multiprocessing
import time,datetime
def Ssh_Cmd(host,CmdFile):
        elog = open(‘error.log‘,‘a+‘)
        log = open(‘7z.log‘,"a+")
        for Cmd in open(CmdFile).readlines():
                Cmd = Cmd.strip() 
                if not len(Cmd) or Cmd.startswith(‘#‘): 
                        continue
                ssh = paramiko.SSHClient()
                ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
                try:
                        ssh.connect(hostname=host,port=22,username=‘root‘,password=‘password‘,timeout=10)
                except Exception,e:
                        print ‘connnet Fail %s‘ % host
                        elog.write(‘%s‘%host)
                        elog.close()
                        continue
                else:
                        print ‘connnet Ok %s‘ % host
                stdin,stdout,stderr=ssh.exec_command(Cmd)
                log.write(stdout.read())
                log.close()
starttime = datetime.datetime.now()
if __name__ == "__main__":
        os.remove(‘7z.log‘)
        os.remove(‘error.log‘)
        IplistFile=‘iplist.txt‘
        CmdFile=‘config‘
        result = []
        pool = multiprocessing.Pool(processes=8)
        for host in open(IplistFile).readlines():
                pool.apply_async(Ssh_Cmd,(host,CmdFile,))
        pool.close()
        pool.join()
        print ‘Done‘
endtime = datetime.datetime.now()
print "time span",endtime-starttime

时间: 2024-10-23 00:58:29

python multiprocessing多进程 ssh的相关文章

Python Multiprocessing 多进程,使用多核CPU计算 并使用tqdm显示进度条

1.背景   在python运行一些,计算复杂度比较高的函数时,服务器端单核CPU的情况比较耗时,因此需要多CPU使用多进程加快速度 2.函数要求  笔者使用的是:pathos.multiprocessing 库,进度条显示用tqdm库,安装方法: pip install pathos 安装完成后 from pathos.multiprocessing import ProcessingPool as Pool from tqdm import tqdm 这边使用pathos的原因是因为,mul

Python 的多进程模块(multiprocessing)

Python的多进程 Python 的MD5模块 try-except-finally的使用方法:finally最后关闭一些东西. Python的多线程模块 Python的pika模块 mq模块出现错误: rabbitting 命令教程: http://zhanghua.1199.blog.163.com/blog/static/4644980720128119320348/

关于python multiprocessing进程通信的pipe和queue方式

这两天温故了python 的multiprocessing多进程模块,看到的pipe和queue这两种ipc方式,啥事ipc? ipc就是进程间的通信模式,常用的一半是socke,rpc,pipe和消息队列等. 今个就再把pipe和queue搞搞. #coding:utf-8 import multiprocessing import time def proc1(pipe):     while True:         for i in xrange(10000):            

python MultiProcessing模块进程间通信的解惑与回顾

这段时间沉迷MultiProcessing模块不能自拔,没办法,python的基础不太熟,因此就是在不断地遇到问题解决问题.之前学习asyncio模块学的一知半解,后来想起MultiProcessing模块更是一知半解,趁着暑假无聊就研究了一下,不得不说,这加深了自己对Python基础的掌握与理解...于是就有了这一系列<python标准库之MultiProcessing库的研究 (1)><python MultiProcessing标准库使用Queue通信的注意要点><py

Python实现多进程

Python可以实现多线程,但是因为Global Interpreter Lock (GIL),Python的多线程只能使用一个CPU内核,即一个时间只有一个线程在运行,多线程只是不同线程之间的切换,对多核CPU来说,就是巨大的浪费.如4核CPU,实际上只利用了一个核,CPU利用率只有25%.要充分利用多核CPU,可以实现Python的多进程. 首先,import相关的包: from multiprocessing import Process, Manager import multiproc

python 使用多进程实现并发编程/使用queue进行进程间数据交换

import time import os import multiprocessing from multiprocessing import Queue, pool """ 一.Python 使用多进程实现并发编程: 因为cpython解释器中有GIL存在的原因(每个进程都会维护一个GIL,jpython解释器没有这个问题),所以在一个进程内, 即使服务器是多核cpu,同一时刻只能有一个线程在执行任务(一个进程内).如果存在较多IO,使用多线程是可以提高处理速度的, 但是

Python多线程多进程那些事儿看这篇就够了~~

自己以前也写过多线程,发现都是零零碎碎,这篇写写详细点,填一下GIL和Python多线程多进程的坑~ 总结下GIL的坑和python多线程多进程分别应用场景(IO密集.计算密集)以及具体实现的代码模块. 目录   0x01 进程 and 线程 and “GIL” 0x02 python多线程&&线程锁&&threading类 0x03 python队列代码实现 0x04 python之线程池实现 0x05 python多进程并行实现 0x01 进程 and 线程 and “

[Python Fabric] [SSH] Mac OS X 10.9 + Vagrant虚拟环境使用Python Fabric进行SSH远程登录的简单实验

1. ssh客户端生成key 1 $ ssh-keygen -t rsa -b 4096 2 Generating public/private rsa key pair. 3 Enter file in which to save the key (/Users/(username)/.ssh/id_rsa): vagrantid_rsa 4 Enter passphrase (empty for no passphrase): 5 Enter same passphrase again: 6

PYTHON学习之SSH登录与下发命令

PYTHON学习之SSH登录(以LINUX为例): PYTHON中有两个模块可以实现SSH登录并下发命令行: PEXPECT 1.安装第三方模块: easy_install pexpect 2.PEXPECT 实现SSH登录及下发命令: 3.本次进行的是人机交互测试方式:测试结果: PARAMIKO 1.安装第三方模块: easy_install paramiko 2.paramiko 实现SSH登录及下发命令: 3.测试结果: