[发明专利]基于Paramiko的交互式命令执行方法及装置在审
申请号: | 202110545509.4 | 申请日: | 2021-05-19 |
公开(公告)号: | CN113190296A | 公开(公告)日: | 2021-07-30 |
发明(设计)人: | 赵万成;苗健;卢健 | 申请(专利权)人: | 瀚高基础软件股份有限公司 |
主分类号: | G06F9/448 | 分类号: | G06F9/448 |
代理公司: | 工业和信息化部电子专利中心 11010 | 代理人: | 华枫 |
地址: | 250101 山东省济南市高新*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 paramiko 交互式 命令 执行 方法 装置 | ||
本发明提出了一种基于Paramiko的交互式命令执行方法及装置,基于Paramiko的交互式命令执行方法,包括:基于shell类,定义execute函数,包括:第一execute函数和第二execute函数;执行所述第一execute函数,并基于所述第一execute函数中的第一expect判断所执行的命令是非交互式命令还是交互式命令;当判定所执行的命令为交互式命令时,调用所述shell类中的_recv_until函数,当所述_recv_until函数的指定状态为第一expect预设内容时,返回回显字符串;执行所述第二execute函数,当所述第二execute函数中的第二expect为’0’时,完成交互命令的执行。本发明能够同时执行用于执行交互式和非交互式的命令,避免了Paramiko不能执行交互式命令所带来的不便性,使用其可以大大提高通过程序实现对远程服务器的自动化控制程度。
技术领域
本发明涉及通信技术领域,尤其涉及一种基于Paramiko的交互式命令执行方法及装置。
背景技术
Paramiko是对SSH(Secure Shell安全外壳协议)协议的一种Python语言实现,可使用其作为SSH客户端去连接SSH服务端,然后执行命令。
交互式命令即一条命令在执行过程中还需用户根据提示输入必要的信息后方可继续,如一条删除文件的命令在执行过程中会提示用户是否确认删除,当用户输入yes确认后方才执行删除操作。然而,Paramiko的执行命令的方法无法执行交互式命令。
发明内容
本发明要解决的技术问题是如何基于Paramiko执行交互式命令,本发明提出一种基于Paramiko的交互式命令执行方法及装置。
根据本发明实施例的基于Paramiko的交互式命令执行方法,包括:
基于shell类,定义execute函数,包括:第一execute函数和第二execute函数;
执行所述第一execute函数,并基于所述第一execute函数中的第一expect判断所执行的命令是非交互式命令还是交互式命令;
当判定所执行的命令为交互式命令时,调用所述shell类中的_recv_until函数,当所述_recv_until函数的指定状态为第一expect预设内容时,返回回显字符串;
执行所述第二execute函数,当所述第二execute函数中的第二expect为’0’时,完成交互命令的执行。
根据本发明的一些实施例,在执行所述第一execute时,当所述第一expect为’0’或”时,
调用所述shell类中的_recv_until函数,当所述_recv_until函数的指定状态为命令执行已结束时,返回回显字符串。
在本发明的一些实施例中,采用_is_cmd_done函数判断命令是否执行结束。
根据本发明的一些实施例,当所述第二expect为’0’时,所述方法还包括:
调用_get_rc获取返回码,并检查所述返回码是否为NOEER_RC,若否,则进行报错;
调用_wash_rs清洗回显字符串,将清洗后的字符串作为返回值返回。
在本发明的一些实施例中,所述execute函数的参数包括:
self,用于标识类实例本身;
command,用于输入待执行的命令字符串;
expect,为期望字符串,当expect为’0’时,表示期望无错误;当expect为”时,表示期望命令执行完成且不检查是否有错;当expect为除’0’和”外的内容时,表示期望显示中出现指定的内容;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于瀚高基础软件股份有限公司,未经瀚高基础软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110545509.4/2.html,转载请声明来源钻瓜专利网。