Python通过paramiko库实现远程执行linux命令的方法

 更新时间:2023年03月07日 10:57:36   作者:redrose2100  
这篇文章主要介绍了Python通过paramiko库实现远程执行linux命令,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

(1)首先安装paramiko库

pip install paramiko

(2)封装了以下类,可以直接拿来使用

import paramiko

class SSHClient(object):
    def __init__(self,host,username,password,port=22):
        self.__host=host
        self.__username=username
        self.__password=password
        self.__port=port
        self.__ssh=None
        self.connect()

    def __del__(self):
        self.close()

    def connect(self):
        self.__ssh = paramiko.SSHClient()
        self.__ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        self.__ssh.connect(hostname=self.__host,port=self.__port,username=self.__username,password=self.__password)

    def exec(self,cmd):
        print(f"begin to run remote cmd: {cmd}")
        stdin, stdout, stderr = self.__ssh.exec_command(cmd,timeout=1800)
        returncode = stdout.channel.recv_exit_status()
        output=stdout.read().decode('utf-8')
        return output

    def close(self):
        self.__ssh.close()

(3)比如准备一个ip地址为192.168.1.12的linux虚拟机,然后直接按照如下方法使用上面封装的类即可实现远程执行linux命令

ssh=SSHClient(host="192.168.1.12",username="root",password="xxxxxx")
output=ssh.exec("ifconfig")
print(output)

(4)执行结果如下

begin to run remote cmd: ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.12  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 240e:3a1:da7:6590:b39f:e15:6b3d:7e7  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::4a67:131d:9133:acdf  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:58:d8:4c  txqueuelen 1000  (Ethernet)
        RX packets 195340  bytes 148862388 (141.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 163425  bytes 20837281 (19.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 32  bytes 2592 (2.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 32  bytes 2592 (2.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:e8:3f:5c  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

到此这篇关于Python通过paramiko库实现远程执行linux命令的文章就介绍到这了,更多相关Python远程执行linux命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python面向对象编程基础实例分析

    Python面向对象编程基础实例分析

    这篇文章主要介绍了Python面向对象编程基础,结合实例形式分析了Python面向对象编程类的定义、继承、特殊方法及模块相关原理与操作技巧,需要的朋友可以参考下
    2020-01-01
  • Python数据合并的concat函数与merge函数详解

    Python数据合并的concat函数与merge函数详解

    大家都知道concat()函数可以沿着一条轴将多个对象进行堆叠,其使用方式类似数据库中的数据表合并,在使用merge()函数进行合并时,默认会使用重叠的列索引做为合并键,即取行索引重叠的部分,本文给大家介绍python 数据合并concat函数与merge函数,感兴趣的朋友一起看看吧
    2022-05-05
  • Python实现向服务器请求压缩数据及解压缩数据的方法示例

    Python实现向服务器请求压缩数据及解压缩数据的方法示例

    这篇文章主要介绍了Python实现向服务器请求压缩数据及解压缩数据的方法,涉及Python文件传输及zip文件相关操作技巧,需要的朋友可以参考下
    2017-06-06
  • Python实现批量修改Word文档中图片大小并居中对齐

    Python实现批量修改Word文档中图片大小并居中对齐

    这篇文章主要介绍了如何利用Python实现批量修改Word文档中图片大小并居中对齐,文中通过代码示例给大家讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-08-08
  • Python实现LRU算法

    Python实现LRU算法

    这篇文章主要为大家详细介绍了Python实现LRU缓存置换算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • keras 特征图可视化实例(中间层)

    keras 特征图可视化实例(中间层)

    今天小编就为大家分享一篇keras 特征图可视化实例(中间层),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python结合Window计划任务监测邮件的示例代码

    Python结合Window计划任务监测邮件的示例代码

    这篇文章主要介绍了Python结合Window计划任务监测邮件的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Python 实现日志同时输出到屏幕和文件

    Python 实现日志同时输出到屏幕和文件

    这篇文章主要介绍了Python 实现日志同时输出到屏幕和文件,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 基于python历史天气采集的分析

    基于python历史天气采集的分析

    今天小编就为大家分享一篇基于python历史天气采集的分析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • python获取系统内存占用信息的实例方法

    python获取系统内存占用信息的实例方法

    在本篇文章里小编给大家整理的是关于python获取系统内存占用信息的实例方法,有需要的朋友们可以参考学习下。
    2020-07-07

最新评论