两个用expect实现自动交互实例

1.

#!/bin/bash

password="iiecas123"

dest_dir="/vds/conf"

for i in `cat $1`

do

  /usr/bin/expect << EOF

    spawn scp ubase.dat $i:/vds/conf/ubase.dat

    set timeout 60

    expect {

      expect "(yes/no)?" { send "yes\r\n" }

      expect "password:" { send "$password\r\n" }

      expect eof

       }

  EOF

done

2.

#!/bin/bash
echo OK
/usr/bin/expect << EOF
spawn ssh [email protected]
    expect "password:"
    set timeout 300
    send "123456\r"
    expect "]#"
    send "exit\r"
expect eof
EOF

时间: 2024-10-25 18:30:25

两个用expect实现自动交互实例的相关文章

expect 实现自动交互脚本

1. 说明 在编写脚本时,可能会遇到需要在另一台主机上执行一个命令,或者在本机拷贝另一台主机内的一个文件.如果两台主机之间没有做互信,就会牵扯到用户输入密码的交互过程,这对编写自动脚本来说, 就行不通了. 要实现在脚本内的自动交互,就需要 expect 2.  expect 命令介绍 expect 是一个用来处理交互的命令.借助 expect 可以将交互过程写在一个脚本里,就可以实现自动化完成.上面的问题也能得到解决. 形象来说,如下命令的交互都能得到解决: ssh scp ftp CentOS

通过expect的自动交互实现ssh公钥批量下发

1.auto_except_ssued_publickey.sh #!/usr/bin/expect (这里要注意执行环境为:#!/usr/bin/expect ) #注意,如果没有expect,请先安装,yum -y install expect 或apt-get -y install expect set timeout 10   set username [lindex $argv 0] #传入第一个参数,用户名 set password [lindex $argv 1] #传入第二个参数

使用expect实现自动交互,shell命令行自动输入

背景 有需求,在允许命令或者脚本跳出交互行,需要进行内容输入,但需要人手动输入,不是很方便,此时可以通过expect来实现自动互动交互. expect是一个自动交互功能的工具,可以满足代替我们实际工作中需要从终端手动输入某些内容来使得程序或命令继续运行的目的.如安装软件是时的一些提示,ssh远程主机执行命令时需要多次输入密码的情况. 安装expect 安装依赖:yum install tcl -y 安装expect:Centos系统yum install expect -y或Ubuntu系统ap

Linux--使用expect进行自动交互

在linux下进行一些操作时,有时需要与机器进行一些交互操作,比如切换账号时输入账号密码,传输文件时输入账号密码登陆远程机器等,但有时候这些动作需要在shell脚本中进行,这个时候就可以使用expect来进行自动的交互操作,从而避免需要人工干预引起的脚本中断执行. expect的核心命令:spawn expect send set spawn 调用要执行的命令expect 等待命令提示信息的出现,也就是捕捉用户输入的提示:send 发送需要交互的值,替代了用户手动输入内容set 设置变量值int

脚本_使用expect自动交互远程主机安装软件

#!bin/bash#功能:使用expect工具自动交互密码,远程到其它主机,安装httpd软件#作者:liusingbon#删除~/.ssh/known-hosts后,ssh远程任何主机,系统都会询问是否确认要连接到该主机rm -rf ~/ssh/known_hosts expect <<EOF  #下一行开始,所有字符都按照指定格式存入expect,知道遇见EOF为止.spawn ssh 192.168.4.254   #例如远程到该主机expect "yes/no"

javascript实现保留两位小数一位自动补零代码实例

javascript实现保留两位小数一位自动补零代码实例:本章节介绍一下如何实现对数字保留两位小数效果,如果数字的原本小数位数不到两位,那么缺少的就自动补零,这个也是为了统一的效果,先看代码实例: function returnFloat(value){ var value=Math.round(parseFloat(value)*100)/100; var xsd=value.toString().split("."); if(xsd.length==1){ value=value.

自动交互脚本之expect

一.Expect简介 在远程服务器执行某项任务,这是最正常不过了,如何有效自动的执行呢?这里介绍自动交互脚本expect的使用. Expect是一个简单的工具语言,功能就是进行自动化的人机交互.它的作者对Expect的定义:是一个实现自动交互功能的软件套件(a software suite for automating interactive tools),使用expect,它能帮助我们在合适的情景下进行合适的交互. Expect是一种能够按照脚本内容里面设定的方式与交互式程序进行"会话&quo

expect实现自动化交互(转载)

综述:expect主要包含三部分,spawn,expect和send spawn实现交互命令的劫持,是自动化交互的基础:然后可以用expect来进行结果查询: expect实现对交互命令输出的解析,得到关键字的查询,如password,user,然后停止,等待交互: send对解析字段内容尽心输入:如password,user,并用\r结束,停留在交互界面:interact. 一.概述 我们通过Shell可以实现简单的控制流功能,如:循环.判断等.但是对于需要交互的场合则必须通过人工来干预,有时

ssh采用expect实现自动输入密码登录、拷贝

1. 引言 最近做了一个项目,需要频繁与另一台主机进行文件的传输:中间想到了很多方式:FTP.samba.curl等,但是还是感觉scp最好用. SCP使用教程可参阅:http://www.jb51.net/article/70919.htm 但scp也存在着一些问题,每次都需要输入目标机的密码,需人为手动干预,这个就比较烦了,那么有没有可以自动进行界面交互的命令呢? 答案当然是:有: expect喽 except使用教程:https://www.cnblogs.com/lixigang/art