网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

系统批量运维管理工具pexpect

1、介绍pexpect

创新互联建站主要从事网站制作、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务牡丹江,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

通过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

系统批量运维管理工具pexpect

其中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()等待系统提示符,用户等待命令执行完毕。

系统批量运维管理工具pexpect


分享文章:系统批量运维管理工具pexpect
文章起源:http://bjjierui.cn/article/ijoehd.html

其他资讯