前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python expect模块pexpe

python expect模块pexpe

作者头像
py3study
发布2020-01-08 17:16:58
6300
发布2020-01-08 17:16:58
举报
文章被收录于专栏:python3python3

Pexpect 是一个自动控制的 Python 模块,可以用来ssh、ftp、passwd、telnet 等命令行进行自动交互。 官方网站是 http://www.noah.org/。通过它,可以实现类似 expect 的操作。

例如我们可以用它来写python脚本,实现批量对一系列(大量的、配置相同的)的linux服务器进行操作。

如果你对expect还不太了解,那么可以参考Linux expect 介绍与用法

一、pexpect 安装方式

以root用户依次执行如下命令:

代码语言:javascript
复制
 wget http://pexpect.sourceforge.net/pexpect-2.3.tar.gz
 tar xzf pexpect-2.3.tar.gz
 cd pexpect-2.3
 sudo python ./setup.py install

二、简单测试

编写一个简单的脚本pexpect_test.py测试一下

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# filename: pexpect_test.py
'''
Created on 2010-7-2
 
@author: forever
'''
import pexpect
 
if __name__ == '__main__':
    user = 'http://www.pythonclub.org'
    ip = '192.168.0.200'
    mypassword = 'forever'
 
    print user
    child = pexpect.spawn('ssh %s@%s' % (user,ip))
    child.expect ('password:')
    child.sendline (mypassword)
 
    child.expect('$')
    child.sendline('sudo -s')
    child.expect (':')
    child.sendline (mypassword)
    child.expect('#')
    child.sendline('ls -la')
    child.expect('#')
    print child.before   # Print the result of the ls command.
    child.sendline("echo '112' >> /home/forever/1.txt ")
    child.interact()     # Give control of the child to the user.
 
    pass
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、pexpect 安装方式
  • 二、简单测试
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档