您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

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

51自学网 2021-10-30 22:53:26
  python
这篇教程Python使用paramiko连接远程服务器执行Shell命令的实现写得很实用,希望能帮到您。

需求

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

1. 先安装paramiko库

pip3 install paramiko

2. 代码

#!/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_obj		self.ssh_connect_timeout = timeout_s		self.port = port		self.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_cli	def 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_list	def 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命令内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


Python 调用C++封装的进一步探索交流
django使用多个数据库的方法实例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。