千家信息网

系统批量运维管理工具pexpect

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,1、介绍pexpect通过pexpect我们可以实现对ssh,ftp,passwd,telnet等命令进行自动交互,不需要人工干预达到自动目的。2、pexpect的组件介绍2.1、spawn类作用:启
千家信息网最后更新 2025年01月23日系统批量运维管理工具pexpect

1、介绍pexpect

通过pexpect我们可以实现对ssh,ftp,passwd,telnet等命令进行自动交互,不需要人工干预达到自动目的。

2、pexpect的组件介绍

2.1、spawn类

作用:启动和控制子应用程序,其构造函数如下:

class pexpect.spawn(command,args=[],timeout=30,maxread=2000,searchwindowsize=None,logfile=None,cwd=None,env=None,ignore_sighup=True)

其中command是任意已知的系统命令,timeout是等待结果的超时时间,maxread是从终端一次读取的最大字节数,searchwindowsize是匹配缓冲区字符串的位置。

注意点:pexpect不会解析shell命令中的元字符(重定向>,管道|,通配符*),不过将存在这三个特殊元字符的命令作为/bin/bash的参数进行调用,可以解决这个问题。比如:

child=pexpect.spawn('/bin/bash -c "ls -l | grep LOG > logs.txt"')

child.expect(pexpect.EOF)

将命令的参数以Python列表形式替换:

shell_cmd = 'ls -l | grep LOG >logs.txt'

child=pexpect.spawn('/bin/bash',['-c',shell_cmd])

child.expect(pexpect.EOF)


调试代码是,pexpect提供两种方式可以查看输入输出:1>写入到日志 2>输出到stdout

child=pexpect.spawn('some_cmd')

fout=file('mylog.txt','w')

child.logfile = fout

或者:child.logfile=sys.stdout

其中expect方法定义了一个子程序输出的匹配规则:

定义的方法是expect(pattern,timeout=-1,searchwindowsize=-1)

pattern表示字符串、pexpect.EOF(指向缓冲区尾部)、pexpect.TIMEOUT、正则表达式。


send向子程序发送相应命令,相当于标准输入键盘

send(self,s)发送命令,不回车

sendline(self,s='')发送命令,回车

sendcontrol(self,char)发送控制字符,如child.sendcontrol('c')相当于ctrl+c

sendeof()发送eof


2.2>run函数

run是使用pexpect进行封装的外部命令的函数

run(command,timeout=-1,withexitstatus=False,events=None,extra_args=None,logfile=None,cwd=None,env=None)

import pexpect

pexpect.run('scp filename user@ip:~',events={'(?)password':mypassword})


3、pxssh

pxssh针对ssh会话操作做了一层封装,提供了更加直接的操作方式

pxssh常用方法:login()建立ssh链接,logout()断开连接,prompt()等待系统提示符,用户等待命令执行完毕。


命令 函数 字符 方法 输出 系统 元字符 参数 子程序 字符串 方式 缓冲区 封装 控制 缓冲 输入 最大 特殊 三个 人工 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 常见的网络安全问题分类 江苏省政务服务网数据库 湖北企业网络安全 软件开发的工作介绍 银行数据库出问题了怎么办 宁波计算机网络技术管理系统 游戏服务器架构教程 软件开发发生的成本会计分录 网络技术及教育教学资源整合 网络安全的特性有( 团委网络安全宣传周活动信息 ftp为什么不能上传数据库 北京一对一网络技术咨询指导 网络安全宣讲的意义是什么 虚拟主机支持搭建代理服务器吗 数据库查询同一专业有多少人 支付网络技术有限公司 数据库画er图怎么处理属性 数据库时间戳用法 arsa数据库 科技互联网相关基金 什么是自上而下的软件开发 河南兆创网络技术有限公司 求生之路服务器怎么改成特感速递 工信部互联互通对网络安全 数据库本地表和链接表的区别 怎么给云服务器装云盘 软件开发怎么写注释 网络安全工程考题 易语言 远程数据库
0