PythonTip >> 博文 >> chinaunix

python multiprocessing多进程 ssh

zihua 2014-01-13 18:01:33 点击: 708 | 收藏


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
原文链接:http://blog.chinaunix.net/uid-24628496-id-3890703.html

作者:zihua | 分类: chinaunix | 标签: python | 阅读: 708 | 发布于: 2014-01-13 18时 |