Home > Backend Development > Python Tutorial > Detailed explanation of python batch execution of ssh commands through the paramiko module

Detailed explanation of python batch execution of ssh commands through the paramiko module

高洛峰
Release: 2017-03-26 17:39:25
Original
2995 people have browsed it

多台设备批量执行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)
Copy after login

The above is the detailed content of Detailed explanation of python batch execution of ssh commands through the paramiko module. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template