"[图片] 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 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    534 引用 • 740 回帖 • 876 关注
  • CentOS

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

    146 引用 • 134 回帖 • 652 关注
  • expect
    2 引用 • 2 回帖
感谢    关注    收藏    赞同    反对    举报    分享
2 回帖    
请输入回帖内容...
  • MaidongAndYida      

    牛逼哦

    感谢    赞同    反对    举报    分享       回复
  • mufengcoding      

    最好证书登陆

    感谢    赞同    反对    举报    分享       回复