python多線程批量遠端管理程式
#!/usr/bin/env python# this script comes from beijing oldboy trainning.# e_mail:70271111@qq.com# function: remote multi exec cmd by ssh.# version:1.1################################################# oldboy trainning info. # QQ 80042789 70271111# site:http://www.etiantian.org# blog:http://oldboy.blog.51cto.com# oldboy trainning QQ group: 208160987 45039636################################################import multiprocessingimport os,sysimport timeresult = []f = file('client.txt')cmd = sys.argv[1]excution_list = []for line in f.readlines(): f_line = line.strip().split() host = f_line[0] username = f_line[1] port = f_line[2] if f_line[3] == 'PASSWORD': password = f_line[4] call_ssh = 'python batch_ssh.py %s %s %s PASSWORD %s %s' %(host,username,port,password,cmd) print call_ssh else: call_ssh = 'python batch_ssh.py %s %s %s SSH_KEY %s' %(host,username,port,cmd) excution_list.append(call_ssh)def run_cmd(run_task): os.system(run_task)#print excution_listp = multiprocessing.Pool(processes=len(excution_list))for task in excution_list: result.append(p.apply_async(run_cmd,(task,)))p.close()for r in result: r.get(timeout=10)
client.txt 是伺服器的 ip 使用者名稱 密碼列表
batch_ssh.py 內容見http://oldboy.blog.51cto.com/2561410/1221129
本文出自 “老男孩linux營運” 部落格,請務必保留此出處http://oldboy.blog.51cto.com/2561410/1221605