博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

利用python多线程执行远程linux上命令

Posted on 2015-09-11 09:26  DBA日志小记  阅读(391)  评论(0编辑  收藏  举报
#!/usr/bin/python 
#-*- coding: utf-8 -*-
import paramiko
import threading

def ssh2(ip,username,passwd,cmd):
    try:
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh.connect(ip,22,username,passwd,timeout=5)
        for m in cmd:
            stdin, stdout, stderr = ssh.exec_command(m)
           #stdin.write("Y")   #简单交互,输入 ‘Y’ 
            out = stdout.readlines()
            #屏幕输出
            for o in out:
                print o,
        print '%s\tOK\n'%(ip)
        ssh.close()
    except :
        print '%s\tError\n'%(ip)

if __name__=='__main__':
    cmd = ['cal','echo hello!']#你要执行的命令列表
    username = "root"  #用户名
    passwd = "123456"  #密码
    threads = []   #多线程
    print "Begin......"
    for i in 90,98,99:
        ip = '10.1.196.'+str(i)
        a=threading.Thread(target=ssh2,args=(ip,username,passwd,cmd))
        a.start()        
        threads.append(a)
        # 等待所有线程完成
        for t in threads:
            t.join()
        print "Exiting Main Thread"

版权声明:QQ:597507041