• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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 paramiko
    
    class 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命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • python 第三方库paramiko的常用方式
    • Python如何实现Paramiko的二次封装
    • python 使用paramiko模块进行封装,远程操作linux主机的示例代码
    • python利用paramiko实现交换机巡检的示例
    • 解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题
    • python使用paramiko实现ssh的功能详解
    • python中使用paramiko模块并实现远程连接服务器执行上传下载功能
    • 浅谈python之自动化运维(Paramiko)
    • python基于paramiko库远程执行 SSH 命令,实现 sftp 下载文件
    上一篇:Python 调用C++封装的进一步探索交流
    下一篇:django使用多个数据库的方法实例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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