1.expect
前言
观察ssh登录的交互现象,有些程序难以避免的需要交互。如何解决脚本与程序的交互问题。
expert就是专门解决脚本和程序之间的交互问题
语法
spawn expect的内部命令,启动一个shell程序
expect 期望哪些内容
yes/no 就send发送yes。\r表示回车
password 就send发送centos
exp_continue 跳过循环,继续下一条语句
interact 允许用户交互(实际不一定用上这个)
安装
yum install -y expect tcl tclx tcl-devel
2.示例1
通过expect解决ssh交互问题
通过expect编写脚本
试用,不能使用bash,因为是用expect语言写的
试用,成功
3.实战2
公钥推送
准备工作:安装expect,准备公钥
通过shell循环判断在线主机
通过expect进行交互
优化脚本
把ping和expect结合
两种方法
①/usr/bin/expect /root/ssh.exp 这要是叫bash执行到这里后用/usr/bin/expect打开ssh.exp文件继续执行
②/usr/bin/expect <<-EOF
内容
EOF 这是等于把内容以文档的形式让/usr/bin/expect执行
一般都用第一种,因为这样美观且不易混淆