expect自动化交互脚本(一)
最近在弄ansible的时候,每次使用的时候都要输入密码感觉非常的麻烦,起初是一台一台做无密码验证,但是效率太低。了解到linux是可以批量做部署的,但是需要使用expect脚本来完成。
expect脚本需要linux安装expect程序才能被支持
[root@DECMDB01 ~]# yum -y install expect
在执行的时候需要通过expect命令执行:
[root@DECMDB01 ~]# expect batch_file.exp
先看一组例子:
正常远程登陆Linux服务器:
[root@130 ~]# ssh root@192.168.222.131 The authenticity of host '192.168.222.131 (192.168.222.131)' can't be established. RSA key fingerprint is e4:69:83:2f:74:75:56:70:87:a6:4f:b1:8d:2e:01:8f. Are you sure you want to continue connecting (yes/no)? ^C ##在不使用expect脚本我们需要手动输入yes/no [root@130 ~]#
通过expect登陆Linux服务器:
[root@130 ~]# expect auto_yes.exp ##通过expect自动化脚本执行登陆 spawn ssh root@192.168.222.131 The authenticity of host '192.168.222.131 (192.168.222.131)' can't be established. RSA key fingerprint is e4:69:83:2f:74:75:56:70:87:a6:4f:b1:8d:2e:01:8f. Are you sure you want to continue connecting (yes/no)? yes ##这里的yes是脚本自动补全 Warning: Permanently added '192.168.222.131' (RSA) to the list of known hosts. root@192.168.222.131's password: ##密码自动填充 Last login: Fri Nov 3 03:19:31 2017 from 192.168.222.1 [root@131 ~]# ##这里已经成功ssh到192.168.222.131
比较差异:
expect脚本避免了手动输入yes或no,如果在未来工作中,有这种交互动作非常频繁,而且响应结果一致的话,那么显然expect是个不错的选择。
=============================================================
我们画个分割线看看脚本是怎么写的
#!/bin/expect ##指定脚本解释器 spawn ssh root@192.168.222.131 ##执行命令 expect {"yes/no" {send "yes\r";exp_continue} ##匹配到yes/no就自动输入yes,继续往下匹配"*password" {send "root\r"} ##匹配到password,则自动输入root } expect eof ##结束
转载于:https://blog.51cto.com/swiki/1978487
expect自动化交互脚本(一)相关推荐
- shell脚本详解(十二)——Here Document免交互及Expect自动化交互
shell脚本详解(十二)--Here Document免交互及Expect自动化交互 一.Here Document 免交互 1.格式 2.注意事项 3.免交互方式实现对行数的统计,将要统计的内容置 ...
- pexpect oracle,expect免交互脚本编程
一.大纲 1.Expect概述 2.Expect安装(底层语言Tcl) 3.Expect基本命令 4.Expect执行方式 5.Expect案例 一.Expect概述 1.Expect是建立在tcl语 ...
- Here Document免交互和Expect自动化交互
目录 一.免交互 1.Here Document 免交互定义 2.语法格式 3.注意事项 (1)免交互方式实现对行数的统计,将要统计的内容置于标记"EOF"之间,直接将内容传给 w ...
- 以某一用户名和密码 登录请求脚本_linux expect自动交互脚本
1.expect参数 2.启用选项 -c :执行脚本前先执行的命令,可多次使用.-d :debug模式,可以在运行时输出一些诊断信息,与在脚本开始处使用 exp_internal 1 相似.-D :启 ...
- Ubuntu16.04利用expect模拟键盘输入实现自动化交互
在Linux的日常使用中,经常会有自动化交互的需要,如SSH,手动的操作繁琐.效率地下,使用expect工具可以模拟键盘输入,实现自动输入.自动交互. 1,安装 sudo apt install e ...
- linux 自动化交互套件 expect 介绍 shell非交互
expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信. expect自动交互流程: spawn启动指定进程---expect获取指定关键字--- ...
- 【拔刀吧少年】之Expect 自动化控制和测试 Here Document 免交互
免交互 一.Here Document免交互 1.1 概述 1.2 语法格式 1.3 简单案例 1.4 支持变量替换 1.5 多行注释 1.6 完成自动划分磁盘免交互 二.Expect进行免交互 2. ...
- 为什么脚本执行一行就不动了_在Linux中通过expect工具实现脚本的自动交互
expect是建立在tcl基础上的一个自动化交互套件, 在一些需要交互输入指令的场景下, 可通过脚本设置自动进行交互通信. 1 安装expect工具 expect是建立在tcl基础上的一个自动化交互套 ...
- linux ssh非交互脚本,Linux expect非交互式执行脚本
expect简介 expect是一款自动化的脚本解释型的工具. expect基于tcl脚本,expect脚本的运行需要tcl的支持. expect对一些需要交互输入的命令很有帮助,比如ssh ftp ...
最新文章
- Linux指定网卡优先级,如何在Ubuntu中设置网络连接的优先级?
- JAVA传递子类参数,在Java中,是否可以通过传递超类方法中使用的参数的子类来覆盖方法?...
- [转贴]制作windows 2003自动安装盘-集成补丁/Raid及硬件驱动
- centOS 6环境下安装R-3.3.2及Rstudio-server
- java beanutil 工具类_实现BeanFactoryAware来达到Spring静态方法获取Bean对象的BeanUtil工具类...
- galaxy s8 android pc,手机秒变PC!三星Galaxy S8桌面模式曝光
- fopen文件路径怎么写_PHP文件上传
- iphone短信尚未送达_iPhone开启这个功能,从此告别垃圾短信骚扰!
- linux系统ftp优化,Linux vsftp 部署优化
- Android运行时权限,设置帮助类BaseActivity;电话权限,短信权限,
- java jdbc 参数_java_jdbc_可变参数_MetaData
- 调试工具BTrace 的使用--例子
- sqlserver备份还原丢失dbo_sqlserver数据库的备份与恢复sql实现
- bulk insert java_从JAVA插入SQL Server时,我可以获得“BULK INSERT”般的速度吗?
- Jlink接口引脚定义
- java调用讯飞语音合成api
- swagger设置字段required必填
- springboot+Vue整合Luckysheet,实现在线编辑Excel表格
- 怎么用ai做出适量插画_8个步骤,快速绘制矢量插画
- 线下门店如何运营私域流量
热门文章
- gradle idea java ssm_应用框架:IDEA+Gradle创建MyBatis+SpringMVC项目
- java实例变量成员变量_Java的类成员变量、实例变量、类变量,成员方法、实例方法、类方法...
- 命名空间不能直接包含_C++程序中可以命名的5种元素
- 2018面向对象程序设计(Java)第3周学习指导及要求
- vue 使用element 菜单与tab页联动
- 【ubuntu】安装之后要安装的一些东西
- linux之创建临时文件的方法
- Docker 私有仓库 Harbor registry 安全认证搭建 [Https]
- 如何读取抓取的wifi包内容
- 苹果树的故事(转发的)