Linux 自动化运维之expect
expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。
expect自动交互流程:
spawn启动指定进程---expect获取指定关键字---send向指定程序发送指定字符---执行完成退出.
注意该脚本能够执行的前提是安装了expect
yum install expect -y,安装完毕后,通过whereis命令可以看到expect安装在了 /usr/bin/expect.
这个expect的作用接近bash解释器的,在脚本内需要写明expect的路径。那么,还是写一个脚本做示例吧。
该脚本为免交互ssh登录到192.168..0.16,以root用户登录。
#!/usr/bin/expect
set ip 192.168.0.19#这个是你想要连接的那个主机的IP
set user root
set passwd #想要远程连接的那个主机的root密码
spawn ssh $user@$ip
expect {
"(yes/no)?" { send "yes\r"; exp_continue }
"*assword:" { send "$passwd\r" }
}
interact
执行方式为 ./脚本名称 ,脚本需要可执行权限。
第二种执行方式: expect 脚本名称 , 脚本不需要可执行权限