[图片] expect 主要命令 : 参考网站链接: https://www.cnblogs.com/lixigang/articles/4849527.html expect简介和使用例子 - 水墨风光 - 博客园 spawn 新建一个进程,这个进程的交互由 expect 控制 expect 等待接受进程返回的字符串 ..

实战 expect

expect 主要命令 :
参考网站链接:
https://www.cnblogs.com/lixigang/articles/4849527.html

expect简介和使用例子 - 水墨风光 - 博客园

一、将 expect 嵌套到 shell 脚本中自动登录
,使用“-c”选项,从命令行执行 expect 脚本,expect 可以让你使用“-c”选项,直接在命令行中执行它

#!/bin/bash
FW="192.168.100.1"
for FW in $FW
do
expect -c "
set timeout -1
spawn ssh limi@${FW}
expect {
 \"*assword\" {send \"qwe*123456\r\";}
 \"yes/no\" { send \"yes\r\"; exp_continue }
 }
 expect \"*>\" { send \"display interface brief\r\" }
 send \"quit\r\"
 expect eof
 "
done

二、相关解释

#!/usr/bin/expect -f
set timeout -1 //永远等待,不会超时
spawn ssh limi@192.168.100.1 //spawn 后面跟命令名称和参数
//如果匹配到*assword,那么发送密码,并进入下面的expect语句(uname -a语句)。
//如果匹配到yes/no,那么发送yes,并重新执行这个expect语句。
expect {
 "*assword" {send "qwe*123456\r";}

 "yes/no" {send "yes\r";exp_continue}
 }
//匹配到*>,那么运行防火墙对应命令
expect "*>" {send "display interface brief\r"}
send "quit\r"
expect eof

三、生产中使用此脚本登陆网络设备自动上传当前配置信息到 FTP 服务器。😰

   
#!/usr/bin/expect -f
set timeout -1
spawn ssh cuijianzhe@192.168.51.1
expect {
"*assword" {send "qwe*123456\r";}
"yes/no" {send "yes\r";exp_continue}
         }
expect "*>" {send "ftp 192.168.51.202\r"}
send "ftp01\r"
send "598941324\r"
send "put vrpcfg.zip\r"
send "quit\r"
expect eof
展开
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    605 引用 • 778 回帖 • 735 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    160 引用 • 177 回帖 • 581 关注
  • expect
    2 引用 • 2 回帖
2 回帖   
请输入回帖内容...
  • MaidongAndYida  

    牛逼哦

  • 其他回帖
  • mufengcoding  

    最好证书登陆