expect示例_shell脚本

exp文件的编写

#!/usr/bin/expect
set timeout 10
set fname [lindex $argv 0]
set ip [lindex $argv 1]
set dname [lindex $argv 2]
#spawn scp $fname [email protected]$ip:$dname
spawn ssh [email protected]$ip
expect {
         "*yes/no*" { send "yes\n";exp_continue}
         "*password*" { send "aixocm\n";exp_continue}
}
         expect  "*#*" {send "cd /tmp\n"}
         expect "*#*" {send "mkdir /tmp/zlj\n"}
        expect "*#" {send "exit\n"}
expect eof

.sh文件的编写

#!/bin/bash
#
#nmap -n -sT -p22 10.0.10.1-253|egrep  -o ‘10.0.10.[0-9]{1,3}‘ >ip.txt
#nmap -n -sT -p22 10.0.10.1-253|egrep  "22/tcp" |awk ‘{print $2}‘ >statu.txt

statu=(`cat statu.txt`)

fname=/root/shell/7_1.sh
dname=/tmp

count=0
while read ip
do
        if [ "${statu[$count]}" == "open" ];then
                ./expect1.exp $fname $ip $dname
        fi
        ((count++))
done < ip.txt

如果.sh文件运行时,提示 spawn:command not found

则给.sh文件添加x权限,使用./x.sh的样式运行

时间: 2024-10-11 13:06:28

expect示例_shell脚本的相关文章

(三)运行appium示例py脚本

运行appium官方自带示例py程序,需要进行下面两大步骤 =======第一步,获得待测示例APP与示例脚本============================= 下载以下库代码(appium 示例代码)至本地  某目录下 https://github.com/appium/sample-code 下载下来后,打开目录结构,包含apps与samples,这2大模块 其中apps中包含:示例待测APP: example中包含的是: 示例测试脚本,支持各种语言: example中包含多种语言编

expect交互式自动化脚本

一 什么是expect 1 Expect is a tool for automating interactive applications such as telnet, ftp, 2 passwd, fsck, rlogin, tip, etc. Expect really makes this stuff trivial. Expect 3 is also useful for testing these same applications. And by adding Tk, you 4

expect批量scp脚本

实验环境 1. 本地主机 192.168.1.17 2. 远程主机 192.168.1.18 192.168.1.19 实验目标 使用expect非交互式脚本与scp命令结合,实现scp批量传输本地文件到远程主机. 脚本注意事项 1. 确保本地主机已安装expect 2. 目标主机非第一次登陆,scp时,不需要输入"yes" 3. 注意列表文件与变量的顺序 #################################################################

expect自动化交互脚本(三)

接着写一个稍微复杂点的脚本,分发文件到指定服务器脚本. 首先我们要知道远程分发文件的命令格式 scp 源文件 验证用户@远程主机:远程目录 [[email protected] ~]# scp auto_yes.exp [email protected]:/tmp/ 需求就是通过脚本来实现发送,不需要输入密码,也就是验证用户是固定的还有密码是固定的,其他的主机IP和目的路径是不固定的,我们通过设置为位置变量来实现自定义化.最终实现的效果: [[email protected] ~]# expec

expect自动化交互脚本(二)

紧接着上篇脚本进行拆分,分析里面的每个单词以及参数,解开交互的面纱,下面看脚本 #!/bin/expect spawn ssh [email protected] expect {       "yes/no"     {send "yes\r";exp_continue}  ##匹配到yes/no就自动输入yes,继续往下匹配       "*password"    {send "root\r"}        ##匹配到

expect远程连接脚本

Expect是Unix/Linux系统中用来进行自动化控制和测试的软件工具,它是Tcl脚本语言的一个扩展,应用在交互式软件中如telnet,ftp,ssh,rsync等.下面是一个用expect脚本登录远程机器的示例: #!/usr/bin/expectset host [lindex $argv 0]set passwd [lindex $argv 1]spawn ssh root@$hostexpect {"yes/no" {send "yes\r";exp_c

Linux - 通过expect工具实现脚本的自动交互

目录 1 安装expect工具 2 expect的常用命令 3 作用原理简介 3.1 示例脚本 3.2 脚本功能解读 4 其他脚本使用示例 4.1 直接通过expect执行多条命令 4.2 通过shell调用expect执行多条命令 5 spawn not found 的解决 1 安装expect工具 expect是建立在tcl基础上的一个自动化交互套件, 在一些需要交互输入指令的场景下, 可通过脚本设置自动进行交互通信. 其交互流程是: spawn启动指定进程 -> expect获取指定关键字

expect工具实现脚本的自动交互

1 安装expect工具 expect是建立在tcl基础上的一个自动化交互套件, 在一些需要交互输入指令的场景下, 可通过脚本设置自动进行交互通信. 其交互流程是: spawn启动指定进程 -> expect获取指定关键字 -> send想指定进程发送指定指令 -> 执行完成, 退出. 由于expect是基于tcl的, 所以需要确保系统中安装了tcl: 检查是否安装了tcl: whereis tcl tcl: /usr/lib64/tcl8.5 /usr/include/tcl.h /u

expect免交互脚本编程

一.大纲 1.Expect概述2.Expect安装(底层语言Tcl)3.Expect基本命令4.Expect执行方式5.Expect案例 一.Expect概述 1.Expect是建立在tcl语言基础上的一个工具,Expect是用来进行自动化控制和测试的工具.主要解决shell脚本中不可交互的问题.对于大规模的linux运维很有帮助.2.在linux运维和开发中,我们经常需要远程登录服务器进行操作,登录的过程是一个交互的过程,可能会余姚输入yes/no password等信息.为了模拟这种输入,可