使用python远程操作linux过程解析
Python  /  管理员 发布于 7年前   149
这篇文章主要介绍了使用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中的几个基础名词:
常用参数
设置连接的远程主机没有本地主机密钥或HostKeys对象时的策略:
利用SSHClient对象的open_sftp()方法,可以直接返回一个基于当前连接的sftp对象,可以进行文件的上传等操作。
sftp = client.open_sftp()sftp.put('test.txt','text.txt')
SSHClient常用的方法举例
import paramiko# 实例化SSHClientclient = 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'))# 关闭SSHClientclient.close()
简易封装批量处理命令
import paramikoclass Paramiko:def __init__(self, ip, user, passwd, port):self.user = userself.ip = ipself.passwd = passwdself.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] = CmdMesreturn CmdDict
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号