什么是expect
expect是基于tcl的相对简单的一个免费的脚本编程工具语言,用来实现自动和交互式任务程序进行通信,无须人手工干预,比如ssh ftp 等,这些程序正常情况下都需要手工与他们进行交互,而使用expect就可以模拟人手工交互的过程,实现自动的和远端的程序交互,从而到达自动化的目的
expect程序工作流程
expect的工作流程可以理解为,spawn启动进程----->expect期待关键字----->send向进程发送字符------>退出结束
安装expect软件
服务端172.18.1.211
客户端 120.27.54.50
所谓的服务端其实也就是安装了expect的软件
[[email protected] ~]# yum list |grep expect
[[email protected] ~]# yum -y install expect.i686
2;安装好expect软件之后 现在服务器上测试下
[[email protected] ~]# ssh -p 22 [email protected]
3;写expect脚本
#!/usr/bin/expect ##expect脚本
spawn ssh -p 22 [email protected] ##远程连接到服务器
set timeout 60
expect "*password:" ##expect期待关键字
send "XXXXX\n" ##send向进程发送字符 XXXXX表示密码 "\n"表示回车
expect eof ##expect expect eof 表示这个语句的开头和结尾
exit ##退出
在服务端172.18.1.211上操作
[[email protected] script]# vi test.exp
4;在服务端172.18.1.211上测试
[[email protected] script]# expect test.exp
一个简单的expect脚本就写好了