gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Python使用paramiko连接远程服务器执行Shell命令的实现由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

需求

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

1. 先安装paramiko库

?
1
pip3 install paramiko

2. 代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/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命令内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://blog.csdn.net/qq_42183962/article/details/114323336 。

最后此篇关于Python使用paramiko连接远程服务器执行Shell命令的实现的文章就讲到这里了,如果你想了解更多关于Python使用paramiko连接远程服务器执行Shell命令的实现的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com