什么是expect

   expect是基于tcl的相对简单的一个免费的脚本编程工具语言,用来实现自动和交互式任务程序进行通信,无须人手工干预,比如ssh ftp 等,这些程序正常情况下都需要手工与他们进行交互,而使用expect就可以模拟人手工交互的过程,实现自动的和远端的程序交互,从而到达自动化的目的


expect程序工作流程

  expect的工作流程可以理解为,spawn启动进程----->expect期待关键字----->send向进程发送字符------>退出结束


安装expect软件

服务端172.18.1.211

客户端 120.27.54.50

所谓的服务端其实也就是安装了expect的软件

[root@taoke1 ~]# yum list |grep expect   

[root@taoke1 ~]# yum -y install expect.i686



2;安装好expect软件之后 现在服务器上测试下

[root@taoke1 ~]# ssh -p 22 root@120.27.54.50

expect脚本语言编写_expect


3;写expect脚本

#!/usr/bin/expect                                              ##expect脚本

spawn ssh -p 22 root@120.27.54.50                  ##远程连接到服务器

set timeout 60                    

expect "*password:"                                         ##expect期待关键字

send "XXXXX\n"                                                    ##send向进程发送字符 XXXXX表示密码  "\n"表示回车

expect eof                                                          ##expect expect eof 表示这个语句的开头和结尾

exit                                                                       ##退出                                                    


在服务端172.18.1.211上操作

[root@taoke1 script]# vi test.exp

expect脚本语言编写_脚本_02



4;在服务端172.18.1.211上测试

[root@taoke1 script]# expect test.exp

expect脚本语言编写_脚本_03

一个简单的expect脚本就写好了