项目背景:

为了更好的实现我们企业的自动化运维,我们需要对pexpect模块有清晰的了解和使用能力。



实验环境:

vmware workstation 11

centos6.5的系统下  

pexpect服务器:192.168.0.26

远程主机:192.168.0.14

SecureCRT (ssh远程连接软件)



软件介绍

Pexpect 是一个用来启动子程序并对其进行自动控制的纯 Python 模块。

Pexpect 可以用来和像 ssh、ftp、passwd、telnet 等命令行程序进行自动交互




实验流程:

一、pexpect安装

因为pexpect是python的一个普通的模块,所以我们可以用easy_install、pip快速安装

1、首先安装python-setuptools,python软件包管理器

[root@localhost ~]# yum install -y python-setuptools

安装完成以后我们就可以使用easy_install安装pexpect模块了

2、使用easy_install安装pexpect模块

[root@localhost ~]# easy_install pexpect

3、安装完成以后,我们检验一下是否安装成功

wKiom1cIcpfB3FWNAABAIEy5vQY929.png可以看到我们成功的导入了pexpect模块,证明我们成功的安装了。

二、实现远程ssh登录,登陆成功后查看网卡信息,并通过日志文件记录所有的输入和输出

1、创建脚本文件。

[root@localhost ~]# cat fuchao01.py 
#!/usr/bin/env python
import pexpect 
import sys
ssh =pexpect.spawn('ssh root@192.168.0.14')   #建立远程连接
fout =file('mylog.txt','w')
ssh.logfile =fout
ssh.expect('password:')
ssh.sendline("123456")
ssh.expect('#')
ssh.sendline('ifconfig')   #执行查看网卡信息的命令
ssh.expect('#')


2、脚本赋予可执行权限

[root@localhost ~]# chmod +x fuchao01.py 

3、查看刚才生成的日志文件


wKiom1cLY6fSvcTLAACopgzTlDs372.png




项目总结:pexpect的魅力绝对不只是我展示出来的这么点儿。希望大家能好好研究和灵活应用它。谢谢大家。