/ 2019-02-13
如何使用python实现多线程批量远程管理?老男孩Python自动化运维课程编写了实现Python多线程批量远程管理程序,具体实现方式如下:
#!/usr/bin/env python import multiprocessing import os,sys import time result = [] 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_list p = 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)
(4)