python 通过paramiko模块批量执行ssh命令

简介: 多台设备批量执行ssh命令,目前是串行,后期会加入多线程实现并行,直接上源码注意不能执行top等动态命令#!/usr/bin/env python# -*- coding:utf-8 -*-__author__  = 'babyshen'__version__ = '1.

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

注意不能执行top等动态命令

#!/usr/bin/env python
# -*- coding:utf-8 -*-

__author__  = 'babyshen'
__version__ = '1.0.0'

import paramiko
from collections import OrderedDict

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 = OrderedDict([
        ('host1','1.1.1.1'),
        ('host2','1.1.1.2'),
        ('host2','2.2.2.2'),
    ])                      # 主机列表 ,hostname:ip
    port     = 22           # 端口号
    username = 'root'       # 用户名
    password = '123456789'  # 密码

    cmd = "ip route show match 1.1.1.0/24 | 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)

github地址:https://github.com/babyshen/Python/blob/master/batsh_ssh.py

目录
相关文章
|
安全 网络安全 文件存储
思科设备巡检命令Python脚本大集合
【10月更文挑战第18天】
959 1
思科设备巡检命令Python脚本大集合
|
监控 网络安全 开发者
Python中的Paramiko与FTP文件夹及文件检测技巧
通过使用 Paramiko 和 FTP 库,开发者可以方便地检测远程服务器上的文件和文件夹是否存在。Paramiko 提供了通过 SSH 协议进行远程文件管理的能力,而 `ftplib` 则提供了通过 FTP 协议进行文件传输和管理的功能。通过理解和应用这些工具,您可以更加高效地管理和监控远程服务器上的文件系统。
746 20
|
运维 Shell 数据库
Python执行Shell命令并获取结果:深入解析与实战
通过以上内容,开发者可以在实际项目中灵活应用Python执行Shell命令,实现各种自动化任务,提高开发和运维效率。
585 20
|
分布式计算 MaxCompute 对象存储
|
安全 Shell 数据处理
使用Python执行Shell命令并获取结果
在实际应用中,可以根据需要选择适当的参数和方法来执行Shell命令,并处理可能出现的各种情况。无论是系统管理、自动化任务还是数据处理,掌握这些技巧都将极大地提高工作效率。
829 12
|
Python
Python PDB命令介绍
【10月更文挑战第15天】 使用PDB的方式有两种,其中一种是在脚本中添加代码,不觉得这种方式比print好在哪里,所以这种方式此文不表。这里我们只学习PDB的命令行使用方式
515 4
|
9月前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
473 146
|
安全 Linux Shell
Linux中SSH命令介绍
Linux中SSH命令介绍
936 2
|
监控 Linux 网络安全
FinalShell SSH工具下载,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux
FinalShell是一款国人开发的多平台SSH客户端工具,支持Windows、Mac OS X和Linux系统。它提供一体化服务器管理功能,支持shell和sftp同屏显示,命令自动提示,操作便捷。软件还具备加速功能,提升访问服务器速度,适合普通用户和专业人士使用。
3786 0

推荐镜像

更多