目录

1.什么是自动应答?

2.自动应答有哪些工具实现方式?自动应答的使用场景有哪些?


1.什么是自动应答?

自动应答是shell脚本过程中常见的一种方式。expect就是一种自动应答的工具。主要由expect-send决定。

2.自动应答有哪些工具实现方式?自动应答的使用场景有哪些?

expect 的安装可以通过yum安装或者源码安装,也可以使用一些类似go-expect的工具。

其中go-expect工具如下

package mainimport ("fmt"expect "github.com/google/goexpect""github.com/google/goterm/term""log""os""regexp""time"
)const (timeout = 10000 * time.Millisecond
)var (promptRE = regexp.MustCompile("%")
)func main() {// 获取命令行参数fmt.Println("命令行参数数量:", len(os.Args))cmd := os.Args[1]fmt.Println("cmd:", cmd)e, _, err := expect.Spawn(cmd, -1)if err != nil {log.Fatal(err)return}defer e.Close()lens := len(os.Args)for i := 2; i < lens; i += 2 {expectStr := os.Args[i]sendStr := os.Args[i+1]fmt.Printf("expectStr:%v sendStr:%v \n", os.Args[i], os.Args[i+1])expectRE := regexp.MustCompile(expectStr)if expectRE == nil {return}eStr := e.String()fmt.Println("eStr:", eStr)s, strings, err := e.Expect(expectRE, timeout)if err != nil {fmt.Printf("err: %s \n", err.Error())fmt.Printf("out: %s  \n", s)fmt.Printf("match: %v \n ", strings)return}fmt.Printf("out:%s \n", s)fmt.Printf("match:%v \n", strings)if err := e.Send(sendStr+"\n"); err != nil {fmt.Printf("err:%s", err.Error())return}}result, arrStr, err := e.Expect(promptRE, timeout)if err := e.Send("exit\n"); err != nil {fmt.Printf("err:%s \n", err.Error())fmt.Printf("out:%s \n", result)fmt.Printf("match:%v \n", arrStr)return}fmt.Printf("out:%s ", result)fmt.Printf("match:%v ", arrStr)fmt.Println("===============================")fmt.Println(term.Greenf("%s: result: %s\n", cmd, result))
}

自动应答的主要使用场景有免密登录和ssh-key的秘钥生成等

先编译上面的xexpect.go文件,生成xexpect二进制文件。免密登录和ssh-keygen的代码生成如下:

生成秘钥
xexpect "ssh-keygen -t rsa" ".*(/root/.ssh/id_rsa)" "" ".*(empty for no passphrase)" "" ".*again" ""  ".*(y/n)" "y"免密登录
xexpect 'ssh-copy-id  root@192.168.180.135' ".*yes/no" "yes" ".*password" "123456"

参考博客

1.https://www.cnblogs.com/operationhome/p/9154055.html

2.GitHub - google/goexpect: Expect for Go

expect自动应答工具相关推荐

  1. linux自动应答,08. 创建 ks.cfg自动应答文件

    Kiskstart 安装步骤比较 Cobbler 自动化部署复杂些,众所周知,随着时间推移,行业会逐步的降低软件操作难度以作为软件提升的标志,于是 Cobbler 产生掩盖或者帮操作者完成了许多工作, ...

  2. MQ消息的自动应答和手动应答| RabbitMQ系列(三)

    相关文章 RabbitMQ系列汇总:RabbitMQ系列 前言 开始消息应答之前先思考几个问题 消费者完成一个任务可能需要一段时间,如果其中一个消费者处理一个长的任务并仅只完成 了部分突然它挂掉了,会 ...

  3. linux shell 自动应答y,Shell脚本SSH登陆自动应答

    Expect解释器协助Shell脚本实现SSH登陆自动应答,需要安装expect解释器来解释该脚本.只写了密码登陆方式自动应答,该脚本不支持密钥登陆自动应答 #!/usr/bin/expect -f ...

  4. 教程:Windows10无人值守(自动应答文件)的创建

    一.准备工作 系统要求: Windows10 任何一个版本 工具下载: 镜像:Windows10,这里使用1809版本 ed2k://|file|cn_windows_10_business_edit ...

  5. js 刷新页面但是不闪烁_前端开发还在手动刷新页面?手把手教你搭建一个自动刷新工具...

    作为一名前端,开发web页面是我们的本职工作.在完成一个页面开发的过程中,保存代码然后手动刷新页面查看效果,这样的动作需要重复无数次,虽然一次这样的动作可能只要花费几秒钟的时间,但是次数多了也挺浪费时 ...

  6. iOS应用模块化的思考及落地方案(二)模块化自动构建工具的使用

    1.0 iOS模块化中的问题 前文已经介绍了模块化的流程及一些常见的问题,我们在这里再次总结一下. 在工作中,当我们开始一个新项目的时候,最先考虑的就是模块化工作. 模块化工作的想法是很美好的,可是执 ...

  7. 开源交互式自动标注工具EISeg

    在人工智能行业有这么一句话:"深度学习有多智能.背后就有多少人工".这句话直接说出了深度学习从业者心中的痛处,毕竟模型的好坏数据占着很大的因素,但是数据的标注成本却让很多从业者感到 ...

  8. 微软开源的自动机器学习工具上新了:NNI概览及新功能详解

    作者 | 宋驰 来源 | 微软研究院AI头条(ID: MSRAsia) 2018年9月,微软亚洲研究院发布了第一版 NNI (Neural Network Intelligence) ,目前已在 Gi ...

  9. 20120520 Linux下mysql的自动备份工具

    文章摘自:http://hi.baidu.com/vb98/blog/item/2ed90cea835fa4cfd439c97f.html linux下的MySQL自动备份工具-第二版2011-10- ...

最新文章

  1. python多行字符串输入_python中怎么输入多行字符串
  2. python删除空文件夹
  3. 双活数据中心技术架构(PDF版)
  4. 密码技术应用--SM2文件签名验签
  5. 在.Net如何制作自定义的快捷方式(转)
  6. iPhone:创建、连接和使用静态库(过时了,仅参考)
  7. SWT实现Text输入自动提示
  8. C++_二维数组_定义方式_数组名称的作用_案例考试成绩统计---C++语言工作笔记021
  9. maikr博客伴侣全新发布,支持博客备份和博客搬家
  10. 苹果电脑上好用的几款数据备份工具
  11. Spring Boot 集成Spring Schedule定时任务执行功能(动态修改执行时间)
  12. AcWing 4071. 国际象棋
  13. CTFmisc图像题(zsteg取zip、压缩包重组、IDAT数据隐写、Markdown编写LaTeX、零宽字节隐写)
  14. 天下武功无坚不破,唯快不破!
  15. 目标检测YOLO实战应用案例100讲-面向目标检测的语义分割技术研究与应用
  16. 一个后端工程师如何实现漂亮的后台管理系统
  17. mysql闪电_闪电算法是什么?如何应对闪电算法?
  18. Chained Predictions Using Convolutional Neural Networks
  19. 何飞作业-17037065
  20. H3 BPM 端到端流程解决方案 (附H3 BPM软件下载地址)

热门文章

  1. pay 和 put的用法
  2. 文件系统:FAT16
  3. 污水处理程序 工厂污水处理控制系统
  4. 祝贺数字化学会•第三届数据分析应用大赛圆满落幕,恭喜以下队伍获奖
  5. CDRX4X7X8X9X10X11全系列下载一键安装永久使用
  6. Android BLE 蓝牙开发-扫码枪集成
  7. python爬取饿了么数据_阿里95亿美元拿下饿了么,我用python抓取了饿了么外卖数据信息...
  8. 注意力机制最新综述解读(last revised 12 Jul 2021)
  9. 软考高级哪个容易通过
  10. 【排序算法】交换排序(C++实现)