百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

自动化测试学习:使用python库Paramiko实现远程服务器上传和下载

bigegpt 2024-12-26 11:52 34 浏览

前言

测试过程中经常会遇到需要将本地的文件上传到远程服务器上,或者需要将服务器上的文件拉到本地进行操作,以前安静经常会用到xftp工具。今天安静介绍一种python库Paramiko,可以帮助我们通过代码的方式进行完成对远程服务器的上传和下载操作,也可以进行对远程服务器输入操作命令。

Paramiko

Paramiko属于python的一个第三方库,可以远程连接Linux服务器,进行通过python进行对Linux进行操作,可以实现进行对远程服务器进行下载和上传文件操作。

安装

既然是第三方库,我们可以通过pip进行安装:

pip install paramiko

基本使用

Paramiko库主要包含两个部分:SSHClient和SFTPClient

SSHClient:表示类似于Linux的ssh命令,我们可以通过SSHClient模块对远程服务器执行一些命令操作(Linux)。

SFTPClient:表示类似于SFTP工具,可以实现对远程服务器的文件进行上传和下载。

SSHClient

这里安静通过SSHClient进行对远程服务器上进行连接,并执行Linux命令,首先进行对paramiko下的SSHClient完成实例化,在使用SSHclient下的connet进行连接,后续进行操作一些命令:

import paramiko

# 进行对paramiko方法下的SSHclient进行实例化

ssh = paramiko.SSHClient()

# 保存服务器密钥

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 输入服务器地址,账户名,密码

ssh.connect(hostname='xxxx', port=22,username='root',password='xxxxxx')

# 返回了三个数据,第一个是输入命令,第2个是命令返回的结果,第3个是命令错误时返回的结果

stdin, stdout, stderr = ssh.exec_command('pwd;lll')

# 返回了当前的路径结果,如果错误则返回为空

print(stdout.read().decode('utf-8'))

# 返回错误的执行结果,如果正确则返回为空

print(stderr.read().decode('utf-8'))

通过执行代码操作后,就很清楚地看到我们已经完成了对linux命令的输入,返回了正确的信息和错误的信息。

SFTPClient

sftpclient前面也介绍了主要是类似于xftp的工具,可以帮助我们实现远程文件的上传,下载。其实用方法也是一样的。先进行实例化,然后通过登录到服务器,通过创建sftp工具然后进行完成文件的上传和下载。

上传文件

安静这里先编写一个txt文件,然后将这个文件通过代码的方法传入到服务器上。

这里通过的上传方法是put(服务器路径,本地路径):

import paramiko

# 对paramiko方法下的SSHclient进行实例化

ssh = paramiko.SSHClient()

# 保存服务器密钥

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 输入服务器地址,账户名,密码

ssh.connect(hostname='xxxxx', port=22, username='root',password='xxxxxx')

# 创建sftp客户端

sftp = paramiko.SFTPClient.from_transport(ssh.get_transport())

# 本地路径

aaa = "anjing.txt"

# 远程路径

bbb = "/home/anjing/222/anjing.txt"

sftp.put(aaa, bbb)

通过执行代码后,我们发现服务器上已经存在了刚刚上传的文件。

文件下载

我们通过进行将这个文本内容进行修改,然后将文件传到我们本地文件中通过vi命令进行编辑。

下载这里使用的方法是get(服务器路径,本地路径):

import paramiko

# 对paramiko方法下的SSHclient进行实例化

ssh = paramiko.SSHClient()

# 保存服务器密钥

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 输入服务器地址,账户名,密码

ssh.connect(hostname='xxxxx', port=22, username='root',password='xxxxxx')

# 创建sftp客户端

sftp = paramiko.SFTPClient.from_transport(ssh.get_transport())

# 远程路径

bbb = "/home/anjing/2

# 下载文件

sftp.get(bbb, r'E:\web\anjing_01.txt')

通过执行代码后发现我们已经成功地将服务器上修改过的文件下载到了本地并修改了名称。

总结

安静通过小小的例子简单地介绍了paramiko如何对文件上传下载和执行linux的命令操作。对于我们测试来言,无论是日常测试中,还是在编写自动化中,又遇到需要服务器操作的时候,都可以尝试下,一来可以在领导面前稳稳的装一波,二来也可以增加我们对python知识的提高。好了,感谢您的阅读,希望能对您有所帮助。

最后:

1)关注+私信回复:“测试”,可以免费领取一份10G软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Mysql数据库、抓包工具、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试等。

2)关注+私信回复:"入群" 就可以邀请你进入软件测试群学习交流~~

相关推荐

了解Linux目录,那你就了解了一半的Linux系统

大到公司或者社群再小到个人要利用Linux来开发产品的人实在是多如牛毛,每个人都用自己的标准来配置文件或者设置目录,那么未来的Linux则就是一团乱麻,也对管理造成许多麻烦。后来,就有所谓的FHS(F...

Linux命令,这些操作要注意!(linux命令?)

刚玩Linux的人总觉得自己在演黑客电影,直到手滑输错命令把公司服务器删库,这才发现命令行根本不是随便乱用的,而是“生死簿”。今天直接上干货,告诉你哪些命令用好了封神!喜欢的一键三连,谢谢观众老爷!!...

Linux 命令速查手册:这 30 个高频指令,拯救 90% 的运维小白!

在Linux系统的世界里,命令行是强大的武器。对于运维小白而言,掌握一些高频使用的Linux命令,能极大提升工作效率,轻松应对各种系统管理任务。今天,就为大家奉上精心整理的30个Linu...

linux必学的60个命令(linux必学的20个命令)

以下是Linux必学的20个基础命令:1.cd:切换目录2.ls:列出文件和目录3.mkdir:创建目录4.rm:删除文件或目录5.cp:复制文件或目录6.mv:移动/重命名文件或目录7....

提高工作效率的--Linux常用命令,能够决解95%以上的问题

点击上方关注,第一时间接受干货转发,点赞,收藏,不如一次关注评论区第一条注意查看回复:Linux命令获取linux常用命令大全pdf+Linux命令行大全pdf为什么要学习Linux命令?1、因为Li...

15 个实用 Linux 命令(linux命令用法及举例)

Linux命令行是系统管理员、开发者和技术爱好者的强大工具。掌握实用命令不仅能提高效率,还能解锁Linux系统的无限潜力,本文将深入介绍15个实用Linux命令。ls-列出目录内容l...

Linux 常用命令集合(linux常用命令全集)

系统信息arch显示机器的处理器架构(1)uname-m显示机器的处理器架构(2)uname-r显示正在使用的内核版本dmidecode-q显示硬件系统部件-(SMBIOS/DM...

Linux的常用命令就是记不住,怎么办?

1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...

Linux常用文件操作命令(linux常用文件操作命令有哪些)

ls命令在Linux维护工作中,经常使用ls这个命令,这是最基本的命令,来写几条常用的ls命令。先来查看一下使用的ls版本#ls--versionls(GNUcoreutils)8.4...

Linux 常用命令(linux常用命令)

日志排查类操作命令查看日志cat/var/log/messages、tail-fxxx.log搜索关键词grep"error"xxx.log多条件过滤`grep-E&#...

简单粗暴收藏版:Linux常用命令大汇总

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部下午好,我的网工朋友在Linux系统中,命令行界面(CLI)是管理员和开发人员最常用的工具之一。通过命令行,用户可...

「Linux」linux常用基本命令(linux常用基本命令和用法)

Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,希望可以帮助你们。总结送免费学习资料(包含视频、技术学习路线图谱、文档等)1、显示日期的指令:d...

Linux的常用命令就是记不住,怎么办?于是推出了这套教程

1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...

Linux的30个常用命令汇总,运维大神必掌握技能!

以下是Linux系统中最常用的30个命令,精简版覆盖日常操作核心需求,适合快速掌握:一、文件/目录操作1.`ls`-列出目录内容`ls-l`(详细信息)|`ls-a`(显示隐藏文件)...

Linux/Unix 系统中非常常用的命令

Linux/Unix系统中非常常用的命令,它们是进行文件操作、文本处理、权限管理等任务的基础。下面是对这些命令的简要说明:**文件操作类:*****`ls`(list):**列出目录内容,显...