expect命令简介及使用案例

expect命令简介及使用案例,第1张

expect命令简介及使用案例

expect作为交互式工具,可以在命令或程序执行时,已交互的形式输入执行字符,实现自动化交互通信。

可将expect看作是另一种shell,只不过expect有特有的语法

语法:

spawn执行命令或程序--expect获取匹配的关键字--send发送指定字符进行交互--退出

expxct工具需要提前安装,执行yum -y install expect 

场景:需要与多个服务器建立链接后进行 *** 作

#!/usr/bin/expect
 
set ipaddress "xxx.xxx.xxx.xxx"
set passwd "password"
set name "name"
set timeout 30 #设置超时时间
 
spawn ssh -p port  $name@$ipaddress #交互程序开始后面跟命令或者指定程序
 
expect {
"yes/no" {send "yesr";exp_continue} #获取匹配的关键字并对应发送
"password" {send "$passwdr"}     #r为回车必须要加
}
interact #保持交互状态
expect eof #expect执行结束 退出

场景:批量修改过期密码

#!/bin/bash

for i in `cat hostip.txt`
do

    /usr/bin/expect << EOF
    spawn /usr/bin/ssh root@$i

    expect {
        "UNIX password" { send "oldr" }
    }
    
    expect {
        "New password:" { send "new#r" }
    }

   expect {
        "Retype new password:" { send "newr" }
    }

    expect "*]#"
    send "echo new|passwd --stdin rootr"
    expect "*]#"
    send "exitr"
    expect eof
EOF
done

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5619846.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存