python连接ssh执行模块_详解python通过paramiko模块批量执行ssh命令

多台设备批量执行ssh命令,目前是串行,后期会加入多线程实现并行,直接上源码

注意不能执行top等动态命令#!/usr/bin/env python

# -*- coding:utf-8 -*-

__author__ = 'babyshen'

__version__ = '1.0.0'

import paramiko

class SSh(object):

def __init__(self,port,username,password):

self.port = port

self.username = username

self.password = password

def ssh_con(self,host,ip,cmd):

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect(ip,self.port,self.username,self.password)

stdin, stdout, stderr = ssh.exec_command(cmd)

res,err = stdout.read(),stderr.read()

result = res if res else err

print('\033[31;1m%s %s\033[0m' %(host,ip))

print('\033[32;1m%s\033[0m' %result.decode())

ssh.close()

if __name__ == '__main__':

client = {'host1':'1.1.1.1',

'host2':'2.2.2.2',

'host3':'3.3.3.3',

'host4':'4.4.4.4',

} # 主机列表 ,hostname:ip

port = 22 # 端口号

username = 'root' # 用户名

password = '123456789' # 密码

cmd = "ip route show match 1.1.1.1 | head -1"

ssh = SSh(port,username,password)

for i in client:

host,ip = i,client[i]

try:

ssh.ssh_con(host,ip,cmd)

except WindowsError:

print('\033[31;1m%s %s %s \033[0m\n' %(host,ip,'连接尝试失败'))

except Exception as e:

print(e)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值