发布时间:2022-08-18 18:09
作者:软件质量保障
知乎:https://www.zhihu.com/people/iloverain1024
作为一名测试,如果问你工作中和什么工具打交道的比较多,想必大多数人都会毫不犹豫的说服务器吧。
测试环境搭建、代码部署、问题定位日志查询这些都离不开操作服务器。我们操作服务的步骤一般是登录服务器,然后切到对应的日志目录下,通过grep/tail方式查询我们想要的日志。当然市面上也提供了很多辅助我们操作服务器的客户端,例如xshell/xftp,但是即使利用客户端,仍然是无法最大化减少我们的手工流水线式的操作。因此本文介绍一个高效的Python库Paramiko,帮助大家开发自己的日志查询工具。
paramiko是Python语言写的一个库,遵循SSH2协议,支持以加密和认证的方式进行远程服务器的连接,利用paramiko,可以方便地进行SSH连接服务器和服务器间文件传输。
Paramiko中的几个基础名词:
1. Channel:是一种安全的SSH传输通道;
2. Transport:使用时会同步创建一个加密的Tunnels(通道),这个Tunnels叫做Channel;
3. Session:是Client与Server保持连接的对象,用connect()/start_client()/start_server()开启会话。
Paramiko提供丰富的API供我们使用,本节主要介绍几种常用的API以及使用方法。
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
pip install paramiko
1.建立连接
paramiko.connect方法参数详解:
connect 常用参数
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, 是否打开压缩