当前位置: 首页 > news >正文

注册网站发财的富豪最好的网页设计网站

注册网站发财的富豪,最好的网页设计网站,网络运营和网络营销的区别,wordpress搜索函数大家好,最近工作比较忙,所以没时间来更新博客。趁着还没在下个版本来临之前,来这边再更新更新。是之前学习到的一些老知识点,就当来巩固一下了。开心QAQ今天给大家介绍的是--PexpectExpect 程序主要用于人机对话的模拟1.运行程序2.程序要求人的判断和输入3.Expect 通过关键字匹…大家好,最近工作比较忙,所以没时间来更新博客。趁着还没在下个版本来临之前,来这边再更新更新。是之前学习到的一些老知识点,就当来巩固一下了。开心QAQ今天给大家介绍的是--PexpectExpect 程序主要用于人机对话的模拟1.运行程序2.程序要求人的判断和输入3.Expect 通过关键字匹配4.根据关键字向程序发送符合的字符串基本使用流程基本使用流程1.首先用 spawn 来执行一个程序2.然后用 expect 来等待指定的关键字这个关键字是被执行的程序打印到标准输出上面的3.最后当发现这个关键字以后根据关键字用 send 方法来发送字符串给这个程序以下就是代码了,比较简单。但很实用#-*- coding:utf-8 -*-This runs a command on a remote host using SSH. At the prompts enter hostname,user, password and the command.importpexpectimportgetpass, os#user: ssh 主机的用户名#hostssh 主机的域名#passwordssh 主机的密码#command即将在远端 ssh 主机上运行的命令defssh_command (user, host, password, command):This runs a command on the remote host. This could also be done with thepxssh class, but this demonstrates what that class does at a simpler level.This returns a pexpect.spawn object. This handles the case when you try toconnect to a new host and ssh asks you if you want to accept the public keyfingerprint and continue connecting.ssh_newkey Are you sure you want to continue connecting#为 ssh 命令生成一个 spawn 类的子程序对象.child pexpect.spawn(ssh -l %s %s %s%(user, host, command))i child.expect([pexpect.TIMEOUT, ssh_newkey, password:])#如果登录超时打印出错信息并退出.if i 0: #Timeoutprint ERROR!print SSH could not login. Here is what SSH said:printchild.before, child.afterreturnNone#如果 ssh 没有 public key接受它.if i 1: #SSH does not have the public key. Just accept it.child.sendline (yes)child.expect (password:)i child.expect([pexpect.TIMEOUT, password:])if i 0: #Timeoutprint ERROR!print SSH could not login. Here is what SSH said:printchild.before, child.afterreturnNone#输入密码.child.sendline(password)returnchilddefmain ():#获得用户指定 ssh 主机域名.host 10.240.176.172#获得用户指定 ssh 主机用户名.user root#获得用户指定 ssh 主机密码.password tester#获得用户指定 ssh 主机上即将运行的命令.command ls -a /homechildssh_command (user, host, password, command)#匹配 pexpect.EOFchild.expect(pexpect.EOF)#输出命令结果.printchild.beforeif __name__ __main__:try:main()exceptException, e:printstr(e)#traceback.print_exc()os._exit(1)需要注意的知识点:spawn() 方法用来执行一个程序,打开一个到 (user, host, command) 服务器的 ssh 连接spawn() ,或者说 pexpect 并不会转译任何特殊字符process pexpect.spawn(/bin/bash –c ls –l | grep LOG log_list.txt) orcmd ls –l | grep LOG log_list.txtprocess pexpect.spawn(/bin/bash, [-c, cmd])process.expect(pexpect.EOF)timeout - 超时时间默认值 30 (单位秒)maxread - 缓存设置默认值 2000 (单位字符)指定一次性试着从命令输出中读多少数据。如果设置的数字比较大那么从 TTY 中读取数据的次数就会少一些。设置为 1 表示关闭读缓存logfile - 运行输出控制默认值 Noneprocess pexpect.spawn(ftp sw-tftp, logfilesys.stdout) 如果你想看到spawn过程中的输出那么可以将这些输出写入到 sys.stdoutprocess pexpect.spawn(ftp sw-tftp)logFileId open(logfile.txt, w)process.logfile logFileIdlogfile_read - 获取标准输出的内容默认值 None记录执行程序中返回的所有内容也就是去掉你发出去的命令而仅仅只包括命令结果的部分process.logfile_read sys.stdoutcwd - 指定命令执行的目录默认值 None 或者说 ./sendline(ls –l, cwd/etc) 在 /etc 目录下执行 ls –l 命令expect() - 关键字匹配后面的匹配关键字是一个列表的话就会返回一个数字表示匹配到了列表中第几个关键字从 0 开始计算。index process.expect([Permission Denied,Terminal type,ftp,])if index 0:print Permission denied at host, cant login.process.kill(0)elif index 1:print Login ok, set up terminal type…process.sendline(vty100)process.expect(ftp)elif index 2:print Login Ok, please send your commandprocess.interact()0.权限不足这可能是ftp服务器出现问题或者没有这个帐号或者其他什么情况反正只要发现这种情况的话我们就给用户提示一下然后杀掉这个进程1.登陆成功但还要用户指定终端模式才能真正使用所以我们在代码中指定了 vty100 这种模式然后看是不是能真正使用了2.还是登陆成功了而且还可以直接输入命令操作 ftp 服务器了于是我们提示用户然后把操作权限交给用户另外有一种特殊情况如果同时有2个被匹配到那么怎么办简单来说就是这样原始流中第一个被关键字匹配到的内容会被使用匹配关键字列表中最左边的会被使用child.expect([(?i)etc, (?i)readme, pexpect.EOF, pexpect.TIMEOUT])前 2 个匹配都是大小写无关的关键就是这个 (?i) 匹配规则它相当于 re.IGNORE 或者 re.I 这个关键字send() - 发送关键字send() 作为3个关键操作之一用来向程序发送指定的字符串它的使用没什么特殊的地方比如process.expect(ftp)process.send(by\n)sendline() - 发送带回车符的字符串sendline() 和 send() 唯一的区别就是在发送的字符串后面加上了回车换行符这也使它们用在了不同的地方只需要发送字符就可以的话用send()如果发送字符后还要回车的话就用 sendline()特殊变量pexpect.EOF - 匹配终止信号pexpect.TIMEOUT - 匹配超时信号
http://www.zqtcl.cn/news/872207/

相关文章:

  • php做的购物网站系统下载宜州做网站需要多少钱
  • 昆明网上商城网站建设怎么做网站教程视频
  • 网站开发都需要什么移动公司网络维护待遇
  • 计算机网络技术网站建设方向wordpress虚拟货币
  • 小江网站建设公司紧急页面通知升级中访问大通知
  • 那个公司做的网站详情页好看做动态图片的网站吗
  • 旅游网站模板文章wordpress 删除
  • 沛县专业做网站wordpress id重置密码
  • 湖南邵阳建设局网站做外贸一般用什么网站
  • html网站开发主要涉及哪些技术越秀金融大厦地址
  • 北京建设银行网站田村广州室内设计公司排行榜
  • 安徽金路建设集团有限公司网站平面设计班培训入门
  • 小型电子商务网站开发php mysql网站开发教程
  • 网站建设常州麦策电商2 网站建设的一般步骤包含哪些
  • cn免费域名注册网站企业推广的渠道有哪些
  • 关于网站建设心得体会网站的功能包括哪些
  • 番禺网站制作技术网站建设与管理pdf
  • 毕业设计做网站选题营销型网站功能模块
  • 西部数码网站管理助手安装建工教育网
  • wordpress 网站logowordpress文本编辑器插件
  • 杭州装饰网站建设如何免费建购物网站
  • 在vs做的项目怎么连接到网站珠海有什么网站
  • 网上购物网站建设论文6做的网站必须放在idc机房吗
  • 基于asp.net的视频网站开发500套wordpress模板
  • 商城模板建站价格寻找专业网站建设
  • 网址我的上网主页seo培训中心
  • 上海建网站服务器河南网站推广优化排名
  • 夸克作文网站淄博团购网站建设
  • 家居类企业响应式网站一个很好的个人网站开发
  • 推荐网站建设服务器百度竞价入口