zoukankan      html  css  js  c++  java
  • 初学Pexpect

    概述

    Pexpect 是 Don Libes 的 Expect 语言的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 Python 模块。 Pexpect 的使用范围很广,可以用来实现与 ssh、ftp 、telnet 等程序的自动交互;可以用来自动复制软件安装包并在不同机器自动安装;还可以用来实现软件测试中与命令行交互的自动化。

    下载

    Pexpect 可以从:

    https://sourceforge.net/projects/pexpect/

    https://pypi.python.org/pypi/pexpect/#downloads

    这两个网站下下载,一个是2.3的一个是最新的4.1的至于区别,暂时还没有研究。

    安装

    安装异常的简单

    [root@test ~]# tar -zxvf pexpect-2.3.tar.gz 
    [root@test ~]# cd pexpect-2.3
    [root@test pexpect-2.3]# python setup.py install  --注意需要用root权限执行此句

    下面就写一个简单的示例吧,网上有很多相同的示例但是有人还是不知道怎么执行,我开始学的时候也是研究了一下才看明白

     1 #!/usr/bin/env python
     2 # -*- coding: utf-8 -*-
     3 
     4 import pexpect
     5 
     6 def ssh_cmd(ip, passwd, cmd):   --需要简单说明下cmd是你想执行的命令
     7     ret = -1
     8     ssh = pexpect.spawn('ssh sm01@%s "%s"' % (ip, cmd))  --也可以把用户名写成变量的形式
     9     try:
    10         i = ssh.expect(['password:', 'continue connecting (yes/no)?'], timeout=5)
    11         if i == 0 :
    12             ssh.sendline(passwd)
    13         elif i == 1:
    14             ssh.sendline('yes
    ')
    15             ssh.expect('password: ')
    16             ssh.sendline(passwd)
    17         ssh.sendline(cmd)
    18         r = ssh.read()
    19         print r
    20         ret = 0
    21     except pexpect.EOF:
    22         print "EOF"
    23         ssh.close()
    24         ret = -1
    25     except pexpect.TIMEOUT:
    26         print "TIMEOUT"
    27         ssh.close()
    28         ret = -2
    29     return ret
    30 ssh_cmd("***.***.***.***","password","df -h") --ssh相应的主机IP,密码和想要运行的命令。

     还会持续更新,今天之学了这么一点~嘿嘿~

  • 相关阅读:
    html5新增元素和废除元素
    html5本地存储
    第四章表单与文件笔记新增属性
    第五章canvas
    lable中for的作用
    第四章表单与文件学习内容
    第三章html5的结构
    html5的全局属性
    正则表达式—升华
    微前端
  • 原文地址:https://www.cnblogs.com/tian880820/p/5535113.html
Copyright © 2011-2022 走看看