iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >使用python远程操作linux过程解析
  • 323
分享到

使用python远程操作linux过程解析

python远程操作linux 2022-06-04 23:06:19 323人浏览 薄情痞子
摘要

这篇文章主要介绍了使用python远程操作linux过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在云服务测试中,往往需要我们进入云服务内容进行相关内容的测试

这篇文章主要介绍了使用python远程操作linux过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

在云服务测试中,往往需要我们进入云服务内容进行相关内容的测试。这测试可以使用平台自身的noVNC、外部辅助xshell工具连接到云服务内部进行测试。

但是在如此反复的测试操作中,就需要用到自动化测试方法去解决这方面的需求。

Python中我们可以通过第三方库paramiko,对linux的云服务器进行操作。

如下命令先行安装


pip install paramiko

paramiko包含两个核心组件:sshClient和SFTPClient。

SSHClient的作用类似于Linux的ssh命令,是对SSH会话的封装,该类封装了传输(Transport),通道(Channel)及SFTPClient建立的方法(open_sftp),通常用于执行远程命令。

SFTPClient的作用类似与Linux的sftp命令,是对SFTP客户端的封装,用以实现远程文件操作,如文件上传、下载、修改文件权限等操作。

Paramiko中的几个基础名词:

  • Channel:一种类Socket,一种安全的SSH传输通道;
  • Transport:一种加密的会话,使用时会同步创建了一个加密的Tunnels(通道),这个Tunnels叫做Channel;
  • Session:client与Server保持连接的对象,用connect()/start_client()/start_server()开始会话。
  • Paramiko的基本使用
  • SSHClient常用的方法介绍
  • connect():实现远程服务器的连接与认证,对于该方法只有hostname是必传参数。

常用参数

  • hostname 连接的目标主机
  • port=SSH_PORT 指定端口
  • username=None 验证的用户名
  • passWord=None 验证的用户密码
  • pkey=None 私钥方式用于身份验证
  • key_filename=None 一个文件名或文件列表,指定私钥文件
  • timeout=None 可选的tcp连接超时时间
  • allow_agent=True, 是否允许连接到ssh代理,默认为True 允许
  • look_for_keys=True 是否在~/.ssh中搜索私钥文件,默认为True 允许
  • compress=False, 是否打开压缩
  • set_missing_host_key_policy():设置远程服务器没有在know_hosts文件中记录时的应对策略。目前支持三种策略:

设置连接的远程主机没有本地主机密钥或HosTKEys对象时的策略:

  • AutoAddPolicy 自动添加主机名及主机密钥到本地HostKeys对象,不依赖load_system_host_key的配置。即新建立ssh连接时不需要再输入yes或no进行确认
  • WarningPolicy 用于记录一个未知的主机密钥的python警告。并接受,功能上和AutoAddPolicy类似,但是会提示是新连接
  • RejectPolicy 自动拒绝未知的主机名和密钥,依赖load_system_host_key的配置。此为默认选项
  • exec_command():在远程服务器执行Linux命令的方法。
  • open_sftp():在当前ssh会话的基础上创建一个sftp会话。该方法会返回一个SFTPClient对象。

利用SSHClient对象的open_sftp()方法,可以直接返回一个基于当前连接的sftp对象,可以进行文件的上传等操作。


sftp = client.open_sftp()
sftp.put('test.txt','text.txt')

SSHClient常用的方法举例


import paramiko

# 实例化SSHClient
client = paramiko.SSHClient()
# 自动添加策略,保存服务器的主机名和密钥信息,如果不添加,那么不再本地know_hosts文件中记录的主机将无法连接
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接SSH服务端,以用户名和密码进行认证
client.connect(hostname='192.168.1.105', port=22, username='root', password='123456')
# 打开一个Channel并执行命令
stdin, stdout, stderr = client.exec_command('df -h ') # stdout 为正确输出,stderr为错误输出,同时是有1个变量有值
# 打印执行结果
print(stdout.read().decode('utf-8'))
# 关闭SSHClient
client.close()

简易封装批量处理命令


import paramiko
class Paramiko:
def __init__(self, ip, user, passwd, port):
self.user = user
self.ip = ip
self.passwd = passwd
self.port = port

# 登录要测试的主机(linux主机)
def type_login_root(self):
self.ssh = paramiko.SSHClient()
self.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
self.ssh.connect(self.ip, self.port, self.user, self.passwd)

# 执行linux命令
def exec_commands(self, cmd):
    stdin, stdout, stderr = self.ssh.exec_command(cmd)
    results = str(stdout.read())
return results

# 批量顺序执行
def CMD(self, cmd_list=[]):
    CmdDict = {}
for c in cmd_list:
      CmdMes = self.exec_commands(c)
      print(CmdMes)
      CmdDict[c] = CmdMes
return CmdDict

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

--结束END--

本文标题: 使用python远程操作linux过程解析

本文链接: https://www.lsjlt.com/news/20829.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • springboot使用redisRepository和redistemplate操作redis的过程解析
    目录导入依赖基本配置使用RedisTemplate访问redis使用Redisrepository访问redis实例:导入依赖 菜单大部分情况下不会出现变化,我们可以将其放入Redi...
    99+
    2024-04-02
  • 如何使用Python脚本在Linux中实现远程操作
    如何使用Python脚本在Linux中实现远程操作,需要具体代码示例在Linux系统中,使用Python脚本可以方便地实现远程操作,能够远程执行命令、传输文件等功能。本文将介绍如何使用Python脚本在Linux中实现远程操作,并给出具体的...
    99+
    2023-10-22
    Python Linux 远程操作
  • MySQL读写IO的操作过程解析
    MySQL是一款广泛应用于Web应用程序开发的开源关系型数据库管理系统。在MySQL中,读写IO的操作是数据库性能优化的重要方面之一。为了更好地理解MySQL读写IO的操作过程,本文将对其进行详细解析。 MySQL读写IO的概念 在MyS...
    99+
    2023-10-06
    mysql 数据库
  • docker操作系统的攒建过程解析
    这篇文章主要介绍“docker操作系统的攒建过程解析”,在日常操作中,相信很多人在docker操作系统的攒建过程解析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”docker操作系统的攒建过程解析”的疑惑有所...
    99+
    2023-06-04
  • nginx 集成lua操作mysql的过程解析
    目录前言实现思路ngx_lua模块概念OpenRestry安装步骤1、下载OpenRestry2、解压缩文件3、进入OpenResty目录执行配置4、 执行命令:make &...
    99+
    2024-04-02
  • python开发App基础操作API使用示例过程
    目录手机控件查看工具uiautomatorviewer工具简介如何使用 APP元素定位操作通过id定位通过class定位通过xpath定位WebDriverWait 显示等...
    99+
    2024-04-02
  • python通过远程连接mysql数据库进行操作
    文章目录 前言一、开启远程访问权限1、开启远程访问端口2、命令行登录mysql 二、Navicat 建库1、新建连接2、建库建表 三、python对数据库进行远程操作三、总结四、参考资...
    99+
    2023-09-20
    数据库 python mysql
  • 基于IDEA 的远程调试 Weblogic的操作过程
    目录基于IDEA 的远程调试 Weblogic背景操作过程docker 相关配置IDEA 相关配置基于IDEA 的远程调试 Weblogic 使用环境 docker + vulhu...
    99+
    2024-04-02
  • Linux操作系统安全配置过程
    本篇内容主要讲解“Linux操作系统安全配置过程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux操作系统安全配置过程”吧!Linux安全配置步骤简述 一、磁盘分区 1、如果是新安装系统,...
    99+
    2023-06-10
  • Linux主机下怎么远程操作GUI程序
    本篇内容介绍了“Linux主机下怎么远程操作GUI程序”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目的:在Linux机器B上远程操作运行在...
    99+
    2023-06-13
  • linux使用Python上ssh远程执
    单台登录: import paramiko ssh = paramiko.SSHClient() key = paramiko.AutoAddPolicy() ssh.set_missing_host_key_policy(key) ss...
    99+
    2023-01-31
    linux Python ssh
  • Python远程SSH库Paramiko详细操作
    目录核心组件SSHClient常用方法SFTPClient常用方法使用示例SSH私钥创建SSHClient运行命令SFTPClient下载文件paramiko是用python语言写的...
    99+
    2024-04-02
  • Windows7操作系统安装过程图解
     Windows 7 的安装非常简单,只需少量操作即可完成;  1、安装 Windows 7  1)开机设置好从光盘启动,放入安装盘启动计算机,也可以开机的时候按 F2/F12 选择启动设备;    2)稍等出来安装对话...
    99+
    2023-06-07
    Windows7 操作系统 安装过程 安装 过程
  • 阿里云Linux服务器远程管理全解远程连接与操作策略
    阿里云提供的Linux服务器是企业进行大数据分析、云计算开发等业务的理想选择。然而,如何远程连接和管理这些服务器,是一个值得探讨的问题。本文将详细介绍如何使用阿里云提供的远程连接工具,以及如何进行服务器的远程操作。 一、远程连接阿里云提供了...
    99+
    2023-11-06
    远程管理 阿里 策略
  • tensorflow2.10使用BERT实现SemanticSimilarity过程解析
    目录前言数据处理模型搭建模型训练微调模型模型评估推理测试前言 本文详细解释了在 tensorflow-gpu 基础上,实现用 BERT + BILSTM 计算文本相似度的过程,主要...
    99+
    2023-05-15
    tensorflow Semantic Similarity tensorflow使用BERT
  • Java编程cas操作全面解析
    CAS 指的是现代 CPU 广泛支持的一种对内存中的共享数据进行操作的一种特殊指令。这个指令会对内存中的共享数据做原子的读写操作。简单介绍一下这个指令的操作过程:首先,CPU 会将内存中将要被更改的数据与期望的值做比较。然后,当这两个值相等...
    99+
    2023-05-31
    java cas 多线程
  • Python线程操作问题举例分析
    这篇文章主要介绍“Python线程操作问题举例分析”,在日常操作中,相信很多人在Python线程操作问题举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python线程操作问题举例分析”的疑惑有所帮助!...
    99+
    2023-06-17
  • Python解析器的解析过程是怎样的
    今天就跟大家聊聊有关Python解析器的解析过程是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。首先先让大家看一下Python解析器的全流程:我们先用编辑器编写好源代码,保存成...
    99+
    2023-06-17
  • python编程语言在操作文件编码格式的应用过程
    这期内容当中小编将会给大家带来有关python编程语言在操作文件编码格式的应用过程,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。建立一个文件test.txt,文件格式用ANSI,内容为:abc中文用pyt...
    99+
    2023-06-17
  • 云服务器ecs用户操作过程
    云服务器ECS用户操作过程如下: 创建账户:首先,需要创建一个新的账户账户,该账户必须包含您的登录名、密码和验证码,以便与云服务器的连接。 创建配置文件:在创建账户时,需要将其配置为使用云服务器。您可以选择使用已有的配置文件来存储您的登...
    99+
    2023-10-26
    操作过程 服务器 用户
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作