您的位置:首页 > 编程语言 > Python开发

python 多线程远程执行命令

2017-06-09 17:12 211 查看
如题,代码如下:

import paramiko,threading,sys,time,os

class SSHThread(threading.Thread):
def __init__(self, ip, port,user,pwd,timeout,cmd):
threading.Thread.__init__(self)
self.ip = ip
self.port = port
self.user = user
self.pwd = pwd
self.timeout = timeout
self.cmd = cmd
self.LogFile = "/home/linxw/temp/test.log"
def run(self):
print("Start try ssh => %s" % self.ip)
try:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(self.ip, self.port, username=self.user, password=self.pwd, timeout=self.timeout)
print("[%s] Login %s => %s " % (self.ip, self.user, self.pwd))
open(self.LogFile, "a").write("[ %s ] IP => %s, port => %d, %s => %s" % (time.asctime( time.localtime(time.time()) ), self.ip, self.port, self.user, self.pwd))
print("[%s] exec : %s" % (self.ip,self.cmd))
open(self.LogFile,"a").write("[%s] exec : %s" % (self.ip,self.cmd))
stdin,stdout,stderr = ssh.exec_command(self.cmd)
print("[%s] exec result : %s" % (self.ip,stdout.read()))
return True
except:
print("[%s] Error %s => %s" % (self.ip, self.user, self.pwd))
open(self.LogFile, "a").write("[%s] Error %s => %s" % (self.ip, self.user, self.pwd))
return False
def ViolenceSSH(ip, port,user,pwd,timeout,cmd):
ssh_scan = SSHThread(ip, port, user, pwd, timeout,cmd)
ssh_scan.start()

if __name__ == '__main__':
ipList = ['192.168.163.128','127.0.0.1']
for ip in ipList:
threading.Thread(target = ViolenceSSH, args = (ip, 22,'root','1234',3,'uptime' )).start()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: