您的位置:首页技术文章
文章详情页

Python使用paramiko连接远程服务器执行Shell命令的实现

浏览:32日期:2022-06-26 13:43:20
需求

在自动化测试场景里, 有时需要在代码里获取远程服务器的某些数据, 或执行一些查询命令,如获取Linux系统版本号 获取CPU及内存的占用等, 本章记录一下使用paramiko模块SSH连接服务器的方法

1. 先安装paramiko库

pip3 install paramiko2. 代码

#!/usr/bin/env python# coding=utf-8'''# :author: Terry Li# :url: https://blog.csdn.net/qq_42183962# :copyright: © 2020-present Terry Li# :motto: I believe that the God rewards the diligent.'''import paramikoclass cfg:host = '192.168.2.2'user = 'root'password = '123456'class sshChannel:def __init__(self, cfg_obj, timeout_s=5, port=22):self._cfg = cfg_objself.ssh_connect_timeout = timeout_sself.port = portself.ssh = self.connect_server()def connect_server(self):ssh_cli = paramiko.SSHClient()key = paramiko.AutoAddPolicy()ssh_cli.set_missing_host_key_policy(key)try:ssh_cli.connect(self._cfg.host, port=self.port, username=self._cfg.user, password=self._cfg.password,timeout=self.ssh_connect_timeout)except paramiko.ssh_exception.SSHException:print('连接{}失败, 请检查配置或重试'.format(self._cfg.host))ssh_cli.close()return ssh_clidef execute_cmd(self, cmd):''':param cmd: 单个命令:return: 服务器的输出信息'''stdin, stdout, stderr = self.ssh.exec_command(cmd)self.ssh.close()return stdout.read().decode(’utf-8’)def execute_cmd_list(self, cmd_list):''':param cmd: 命令列表:return: 服务器的输出信息的列表'''out_list = list(map(self.execute_cmd, cmd_list))return out_listdef test_get_sys_version(self):sys_version = self.execute_cmd('lsb_release -rd')print(sys_version)def test_get_sys_disk_free_and_memory_free(self):sys_info = self.execute_cmd_list(['df -h -BG /', 'free -m'])print(sys_info)if __name__ == ’__main__’:server = sshChannel(cfg)server.test_get_sys_version()server.test_get_sys_disk_free_and_memory_free()

到此这篇关于Python使用paramiko连接远程服务器执行Shell命令的实现的文章就介绍到这了,更多相关Python使用paramiko连接远程服务器执行Shell命令内容请搜索好吧啦网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好吧啦网!

标签: Python 编程
相关文章: