expect 自动化控制命令

expect 的核心是 spawn expect send set

spawn 调用要执行的命令
expect 等待命令提示信息的出现,也就是捕捉用户输入的提示:
send 发送需要交互的值,替代了用户手动输入内容
set 设置变量值
interact 执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了。如果没有这一句登录完成后会退出,而不是留在远程终端上。
expect eof 这个一定要加,与 spawn 对应表示捕获终端输出信息终止,类似于 if....endif

expect 脚本必须以 interact 或 expect eof 结束,执行自动化任务通常 expect eof 就够了。

设置 expect 永不超时
set timeout -1

设置 expect 300 秒超时,如果超过 300 没有 expect 内容出现,则退出
set timeout 300

例子: 自动登录远程服务器执行ifconfig命令

#!/bin/bash
    passwd=‘Hello2014‘
    /usr/bin/expect <<-EOF
    set time 30
    spawn ssh [email protected]192.168.126.131
    expect {
    "*yes/no" { send "yes\r"; exp_continue }
    "*password:" { send "$passwd\r" }
    }
    expect "*#"
    send "ifconfig\r"
    expect "*#"
    send "exit\r"
    interact
    expect eof
    EOF

Code

时间: 2024-10-13 14:34:52

expect 自动化控制命令的相关文章

expect 自动化交互软件

一.expect简介 expect是基于TCL的相对简单的一种免费的脚本编程工具语言,用来实现自动和交互式任务程序进行通信,无需人的手工干预,如:SSH.FTP等.这些程序正常情况下都需要手工进行交互,而使用expect就可以模拟人手工交互的过程,实现自动和远端程序的交互,从来达到自动化运维的目的. 官方解释:expect是一个用来实现自动交互功能的软件套件(expect is a software suite for automating interactive tools) expect支持

利用BeEF REST API自动化控制僵尸主机

本文已发布于Freebuf,属于原创奖励计划,未经许可禁止转载. http://www.freebuf.com/articles/network/137662.html 一. 前言 关于BeEF,不再多介绍,它的强大毋庸置疑,利用它我们可以做很多事情.最近的一些实验,需要用beef批量自动进行控制,发现网上也没有过多关于这方面内容的介绍,于是学习了一下它的API,顺便练习一下python编程,这里把自己的学习内容分享下.本文涉及的一些内容可能具有一定的攻击性,请遵守国家法律,禁止用于非法用途.

利用BeEF REST API自动化控制僵尸主机 --转载--作者ssooking

一. 前言 关于BeEF,不再多介绍,它的强大毋庸置疑,利用它我们可以做很多事 情.最近的一些实验,需要用beef进行批量自动控制,发现网上也没有过多关于这方面内容的介绍,于是学习了一下它的API,顺便练习一下python编 程,这里把自己的学习内容分享下.本文涉及的一些内容可能具有一定的攻击性,请遵守国家法律,禁止用于非法用途. 二. 通过API控制beef BeEF从0.4.3.3,版本开始,提供了静态API接口,用户可以通过发送HTTP / JSON请求控制Beef. 我们可以通过程序,批

Matlab绘图基本控制命令

图形的控制与表现 (Figure control and representation) MATLAB提供的用于图形控制的函数和命令:   axis:  人工选择坐标轴尺寸.    clf:清图形窗口. ginput: 利用鼠标的十字准线输入.   hold: 保持图形.    shg:显示图形窗口.subplot: 将图形窗口分成N块子窗口.1.图形窗口(figure window)(1). 图形窗口的创建和选择(Creating and selecting of figure window)

Sass控制命令及函数知识整理

2017-07-07  20:17:17 最底部附结构图(实在是结构图太长了没办法) 2017-06-22  09:11:43 一.Sass的控制命令 [email protected]语句 @if 指令是一个 SassScript,它可以根据条件来处理样式块,如果条件为 true 返回一个样式块,反之 false 返回另一个样式块. 在 Sass 中除了 @if 之,还可以配合 @else if 和 @else 一起使用. 示例::控制一个元素隐藏或显示的代码, 原理:定义一个混合宏,通过 @

Ant管理安卓项目的自动化打包命令

Ant管理安卓项目的自动化打包命令 一.配置ant 1.登陆ant下载网页:http://ant.apache.org/bindownload.cgi,点击红框内容进行ant下载. 2.把ant下载包解压放进指定目录下. 3.配置ant的系统环境,如下 4.在dos环境中输入ant -version 测试ant环境配置是否成功. 二.使用ant命令给安卓项目生成build.xml和local.properties配置文件 1.在dos环境下输入命令: android update project

cmd(控制命令程序)的用法

1. win+r进入运行程序,cmd进入控制命令界面 dir显示目录下包含的子目录或文件 用法: dir是路径 dir是命令,在命令后空格分开 路径:要显示目录的位置 rd:删除空目录 语法: rd  路径\目录的名称 cd: 切换路径 语法: 1      cd目录x              //切换到当前目录下的"目录x" 2      cd路径\目录x         //切换到指定"目录x" 3      cd..                 //切换

64,管道符,控制命令,变量

管道符 注:管道符 就是 把上一个命令 的结果 丢给下一个命令来执行显示出来如下: 案例一 [[email protected] /]# cat 1.txt | wc -l19[[email protected] /]# 案例二 [[email protected] /]# cat 1.txt | grep 1bin:x:1:1:bin:/bin:/sbin/nologinmail:x:8:12:mail:/var/spool/mail:/sbin/nologinoperator:x:11:0:

Selenese 命令清单 - 鼠标键盘事件控制命令

点击链接加入群[悦分享测试联盟]:https://jq.qq.com/?_wv=1027&k=5DiePik 简介 Selenium为用户提供了大量的Selenese命令,可以非常方便的为用户编写脚本实用,其中实际场景运用需要的并不多,为了能更好的利用这些命令,我对几乎所有Selenese命令做了分类,分类内容如下: 包含操作页面元素常用命令,以及一些不常用到的高级使用命令 对鼠标键盘事件控制命令 wait相关命令 veriy相关命令 assert相关命令 store存储器相关命令 Part I