#!/usr/bin/env python
#-*- coding:utf-8 -*-
#多线程批量远程执行一条命令
# made in chinaimport threading
import sys,os
import subprocess#cmd = sys.argv[2]
ip_list=[]
ip_fail=[]def subprocess_caller(cmd):try:p = subprocess.Popen(cmd, stdout = subprocess.PIPE, stderr = subprocess.PIPE, shell = True)output, error = p.communicate()except OSError, e:print 'SUBPROCEEE_CALLER function: execute command failed, message is %s' % ereturn dict(output = [], error = [], code = 1)else:return dict(output = output, error = error, code = 0)#cmd
def run_cmd(num,ip):cmd = sys.argv[2]tmp_cmd = "ssh -o ConnectTimeout=3 -o StrictHostKeyChecking=no root@%s 2>/dev/null  \"%s\" "%(ip,cmd.strip())res=subprocess_caller(tmp_cmd)#print "===================="#print "The %s is %s success"%(ip,num)#print "===================="if res['output'] != '':print "\033[1;35m The %s is succeed  \033[0m  \n %s \n"%(ip,res['output'])else:print "\033[1;31m The %s is failed \040"%(ip)ip_fail.append(ip)#ip
def get_ip():ip_file = sys.argv[1]input = open(ip_file,'r')while True:tmp_ip = input.readline()if tmp_ip != '':#print type(tmp_ip)ip_list.append(tmp_ip.strip())else:breakinput.close()#print ip_list#多线程
def main():get_ip()threads = []nloops = range(len(ip_list))for i in nloops:t = threading.Thread(target=run_cmd,args=(i, ip_list[i]))threads.append(t)for i in nloops:threads[i].start()for i in nloops:threads[i].join()if len(ip_fail) != 0: print ip_failif __name__ == '__main__':main()

  

转载于:https://www.cnblogs.com/bill2014/p/8336437.html

python2.7多线程的批量操作远程服务器相关推荐

  1. [Xcode 实际操作]八、网络与多线程-(17)使用网址会话对象URLSession向远程服务器上传图片...

    目录:[Swift]Xcode实际操作 本文将演示如何通过网址会话对象URLSession向远程服务器上传图片. 网址会话对象URLSession具有在后台上传和下载.暂停和恢复网络操作.丰富的代理模 ...

  2. python批量操作Linux服务器脚本,ssh密码登录(执行命令、上传、下载)(一)...

     1 #-*- coding: utf-8 -*-  2 #批量操作linux服务器(执行命令,上传,下载)  3 #!/usr/bin/python  4 import paramiko  5 im ...

  3. python processpoolexector 释放内存_一起看看python 中日志异步发送到远程服务器

    在python中使用日志最常用的方式就是在控制台和文件中输出日志了,logging模块也很好的提供的相应的类,使用起来也非常方便,但是有时我们可能会有一些需求,如还需要将日志发送到远端,或者直接写入数 ...

  4. cmd中的进度如何捕捉到输出内容_python 中日志异步发送到远程服务器

    在python中使用日志最常用的方式就是在控制台和文件中输出日志了,logging模块也很好的提供的相应的类,使用起来也非常方便,但是有时我们可能会有一些需求,如还需要将日志发送到远端,或者直接写入数 ...

  5. LInux 下安装 python notebook 及指向路径,运行计时,炫酷的深蓝午夜主题,本地登陆远程服务器

    1.  安装 pip工具 sudo apt-get install pyton-pip 2. 安装ipython及其依赖包 sudo apt-get install ipython ipython-n ...

  6. python web 服务器实时监控 websocket_python websocket网页实时显示远程服务器日志信息...

    功能:用websocket技术,在运维工具的浏览器上实时显示远程服务器上的日志信息 一般我们在运维工具部署环境的时候,需要实时展现部署过程中的信息,或者在浏览器中实时显示程序日志给开发人员看.你还在用 ...

  7. Excel导出显示服务器,javaexcel导出到远程服务器

    javaexcel导出到远程服务器 内容精选 换一换 使用GDS工具将数据从数据库导出到普通文件系统中,适用于高并发.大量数据导出的场景.通过外表导出数据:通过GDS外表设置的导出模式.导出数据格式等 ...

  8. 服务器显示屏出现白屏,远程服务器时出现白屏怎么解决

    远程服务器时出现白屏怎么解决 内容精选 换一换 远程登录裸金属服务器后,控制台出现如下异常现象:使用vim编辑退出后,可编辑区域剩下半个屏幕.输入字符长度超过80个时,当前行被覆盖.使用vim等文本编 ...

  9. Python 实现远程服务器(ssh)批量执行命令

    paramiko 远程控制介绍 Python paramiko是一个相当好用的远程登录模块,采用ssh协议,可以实现linux服务器的ssh远程登录.首先来看一个简单的例子 import parami ...

最新文章

  1. CSS自定义鼠标样式。JS获取鼠标坐标,实现提示气泡框跟随鼠标移动
  2. EZBioCloud:16S和原核基因组物种注释和新种鉴定
  3. bzoj 2435: [Noi2011]道路修建 树上 dp
  4. 使用CL_GOS_DOCUMENT_SERVICE对采购申请挂附件
  5. Windows中常用的git GUI客户端的介绍
  6. python数据分析考点_零基础30天入门python数据分析|知识点整理
  7. QT绘制百分比条形图。
  8. 在macOS X中gdb的codesigned问题解决
  9. Linux服务器重启后crs_stat -t 命令无法正常使用以及解决思路
  10. pycharm 更改创建文件默认路径
  11. 两道二分coming~
  12. 世上描述宇宙最精确的科学理论
  13. mysql s授权所有用户_批量获取mysql用户权限的方法
  14. Flutter教程app
  15. django部署到linux上不显示.svg图标处理方法
  16. UNIX操作系统发展史简介
  17. matlab可见光通信,可见光通信研究工作matlab代码
  18. [易飞]付款条件-账期之理解
  19. 启用Win10家庭版的远程桌面服务端
  20. uni-app 压缩图片(base64上传)包含图片验证

热门文章

  1. linux应用程序接收文件,Linux应用程序学习之文件编程
  2. c语言更新数据,sqlite学习笔记10:C语言中使用sqlite之查询和更新数据
  3. elementui 加载中_ElementUI cascader级联动态加载回显和搜索看这个就够了
  4. python io多路复用_python实现IO多路复用 --- selector
  5. 抖音计算机音乐你要我,抖音上很火的我要你快乐我要你快乐是什么歌?
  6. 九宫格C语言递归程序,[置顶] C语言递归实现N宫格(九宫格)源码
  7. 【SSL】【Apache】 使用向导配置 https/ssl
  8. 严重: A child container failed during start
  9. mfc 饼图绘画_绘画技能干货 | 【人体头颈】的绘画技巧(三)(内含母亲节抽奖公布)...
  10. android使用的图片压缩格式,Android 之使用libjpeg压缩图片