pect-shell中的自动交互

这是我在ST写的自动登陆ssh的脚本, 分两个文件

文件1: sssh

#!/bin/bash #xql 2011/01/4#auto ssh 138.198.230.170

case $1 in    "xql")        sssh.exp xql        ;;    "root")        sssh.exp root        ;;    "31")        ssh [email protected]10.80.117.31        ;;    "40")        ssh [email protected]10.80.117.40        ;;    *)        ssh [email protected]138.198.230.170        ;;esac

文件2: sssh.exp

#!/usr/bin/expect

set USER [ lindex $argv 0 ]set ADDR "138.198.230.170"

switch $USER {    "xql"   {set PASS "qianli1987"}    "root"  {set PASS "bu60ff"}    default {exit 1}}

spawn ssh [email protected]$ADDR

expect {    "*password: " {send "$PASS\r"}    "*(yes/no)? " {send "yes\r"}}interact
时间: 2024-10-07 02:00:42

pect-shell中的自动交互的相关文章

shell中scp自动输入密码

``` #!/bin/bash des_pass=testtest expect -c " spawn scp target/aaa-0.0.1.war [email protected]:/home/GameUser/MagicvesselUserWeb/aaa-release.war expect \"password:\" send \"${des_pass}\r\" expect eof "

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

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

shell脚本实现无密码交互的SSH自动登陆

ssh连接远程主机时候询问密码,跟su.sudo命令的默认行为一样,是不从stdin读入数据的,据称是为安全考虑,但是有时候在脚本当中确实需要无人守值的登陆.搜索一下不难找到类似的例子,使用expect来完成密码应答: #!/bin/bash auto_login_ssh () { expect -c "set timeout -1; spawn -noecho ssh -o StrictHostKeyChecking=no $2 ${@:3}; expect *assword:*; send

Python的Crypto模块使用:自动输入Shell中的密码

概述: 现在我们已经越来越多地使用程序去代替人工执行一些操作(比如说,安装一些软件.登录一些服务等等),可是这些操作又有很多的情况是要和人之间进行互动(比如说输入一些yes or no.输入密码.输入自定义数据等).如果Shell中需要我们去输入这个值,我们的程序又没有提供这样的功能,那么流程就会卡在了这个流程中.当然,我们不希望有这样的情况发生.那么希望这篇文章可以提供一个思路,帮助你解决一些棘手的问题. 准备工作: 1.python 2.pycrypto-2.4.1.tar http://d

自动交互脚本之expect

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

[转] 关于linux下通过shell命令(自动)修改用户密码

关于linux下通过shell命令(自动)修改用户密码 2012-04-23 18:47:39 分类: 原文地址:关于linux下(自动)修改用户密码 作者:ubuntuer 本文章总结了如何手动.自动修改本地用户密码及远程机器的用户密码.对做自动化测试提供了自动修改用户密码的原理及方法. 修改本地用户密码:1.交互配置本地用户:以root用户: passwd <username>Changing password for user dewang.New UNIX password: BAD

UNIX/LINUX使用expect实现人机自动交互功能

expect用法 [#!/usr/bin/expect] 这一行告诉操作系统脚本里的代码使用那一个shell来执行.这里的expect其实和linux下的bash.windows下的cmd是一类东西. 注意:这一行需要在脚本的第一行. [set timeout 30] 基本上认识英文的都知道这是设置超时时间的,现在你只要记住他的计时单位是:秒 .timeout -1 为永不超时 [spawn ssh -l username 192.168.1.1] spawn是进入expect环境后才可以执行的

expect 实现自动交互脚本

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

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获取指定关键字