expect的使用】的更多相关文章

1. [#!/usr/bin/expect]  这一行告诉操作系统脚本里的代码使用那一个shell来执行.这里的expect其实和linux下的bash.windows下的cmd是一类东西.  注意:这一行需要在脚本的第一行.  2. [set timeout 30]  基本上认识英文的都知道这是设置超时时间的,现在你只要记住他的计时单位是:秒.timeout -1 为永不超时 3. [spawn ssh -l username 192.168.1.1]  spawn是进入expect环境后才可…
参考: http://www.cnblogs.com/lzrabbit/p/4298794.html expect是linux系统中可以和子进程进行交互的一个命令,使用它可以做一些自动化工作.python中也有一个模块pexpect,提供了类似的功能. 例如:使用ssh登陆需要输入密码,可以使用expect代替手工输入. 例如:使用passwd修改账户密码,也可以使用expect代替. expect用多种执行方式,交互式,执行文件,执行命令. 1.交互式 在命令行输入expect进入交互式 常用…
自动登录主机(ssh) 建脚本item2login.sh,包含如下内容 #!/usr/bin/expect set timeout 30 spawn ssh -p [lindex $argv 0] [lindex $argv 1]@[lindex $argv 2] expect { "(yes/no)?" {send "yes\n";exp_continue} "password:" {send "[lindex $argv 3]\n&…
  Mac 下载:brew install homebrew/dupes/expect expect : ->  自动化脚本工具:  用于处理交互命令; #注意 调用时并不是使用的 /bin/bash 而是 expect#!/usr/local/bin/expect Expect中最关键的四个命令是send,expect,spawn,interact. send:用于向进程发送字符串  expect:从进程接收字符串  {捕捉返回信息中的字符串} spawn:启动新的进程   {启动新的进程}…
#!/usr/bin/expect -fset ipaddr "192.168.5.4"set passwd "123qwe"set timeout 30 spawn ssh root@$ipaddrexpect {"yes/no" { send "yes\r"; exp_continue }"password: " { send "$passwd\r" }}expect "*…
[root@localhost scripts]# cat exptest.sh #!/usr/bin/expect spawn ssh root@127.0.0.1 expect "password: " send "oracle\r" send "ls\r" #send "ls >/tmp/l3.log\r" send "echo status:$?\r" expect -re ,string)…
#!/usr/bin/expect set hostname [lindex $argv 0] set username [lindex $argv 1] set passwd [lindex $argv 2] set dbname [lindex $argv 3] set timeout 10 #spawn /usr/bin/ssh $username@$hostname #expect { # "yes/no" { send "yes";exp_continue…
测试框架Mocha与断言expect在浏览器和Node环境都可以使用除了Mocha以外,类似的测试框架还有Jasmine.Karma.Tape等,也很值得学习. 整个项目源代码: 为什么学习测试代码?1. react的开发不适合网页端的调试和测试2. 把关所写代码质量,防止bug和漏洞 要测试的文件add.js测试文件命名为:add.test.js或者add.spec.js 测试脚本可以独立运行.测试脚本里包含一个或多个describe块,每个describe块应该包括一个或多个it块 add.…
简单模式: #!/usr/bin/expect -f spawn ssh root@192.168.0.1 expect "*assword*" send "root\r" expect "#" send "ifconfig \r" expect eof 讲解: send:用于向进程发送字符串 expect:从进程接收字符串 比如:expect "*assword*" spawn:启动新的进程 intera…
一.命令 except 实例详解 1. 介绍 expect 使用场景 expect可以让我们实现自动登录远程机器,并且可以实现自动远程执行命令.当然若是使用不带密码的密钥验证同样可以实现自动登录和自动远程执行命令.但当不能使用密钥验证的时候,我们就没有办法了.所以,这时候只要知道对方机器的账号和密码就可以通过expect脚本实现登录和远程命令. 使用之前先安装 expect 软件 yum install -y expect 2. 自动远程登录,登陆后不退出 #! /usr/bin/expect…
需求:现在有一百多台的机器,都是使用用户名密码登录做一些运维操作,不想因为密码变更造成管理上的一些麻烦,所以改为通过密钥文件的方式进行登录,需要提前做一些准备工作,把准备好的.SSH文件复制到各机器的特定用户目录下. 操作:需要使用到EXPECT或者SSHPASS.这里选择EXPECT为例: 保存为 myscp.sh,替换为真正的密码,使用的时候传递目标IP参数. #!/bin/bash expect -c " set timeout 1200; spawn /usr/bin/scp -r /h…
linux tcl expect 安装 一.Tcl安装 1.  下载:tcl8.4.20-src.tar.gz http://www.tcl.tk/software/tcltk/downloadnow84.tml 2.解压缩源码包       tar xfvz tcl8.4.20-src.tar.gz 3.安装配置       cd tcl8.4.20/unix       ./configure --prefix=/usr/local/tcl --enable-shared       mak…
原文章摘自:http://lizhenliang.blog.51cto.com/7876557/1607723/ Linux下实现免交互登陆一般有两种: 1. SSH无密码认证方式 客户端使用ssh-keygen生成密钥对,将公钥复制到服务端(authorized_keys),SSH提供公钥登陆,当SSH访问服务端时,服务端先在本机寻找客户端的公钥,然后把客户端发来的公钥进行比较,如果一致,则用公钥加密给客户端,客户端再用私钥进行解密,实现加密所有传输的数据. 1>.在客户机上创建密钥对 # s…
感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正! 如有转载,请保留源作者博客信息. Better Me的博客:blog.csdn.net/tantexian 如需交流,欢迎大家博客留言.   无密钥登录的自动脚本实现: vim auto_ssh.sh    #!/usr/bin/expect ] ] ] spawn ssh-copy-id -i /root/.ssh/id_rsa.pub $username@$hostname expect { #first…
先用if 判断expect有没有安装 没有就yum install expect #!/bin/bash passwd='123456' /usr/bin/expect <<-EOF set time 30 spawn ssh -p18330 root@192.168.10.22 expect { "*yes/no" { send "yes\r"; exp_continue } "*password:" { send "$p…
#!/bin/sh echo "helo" password='xxxx' ###不能在下面的expect脚本段设置成 set password xxxx否则获取不到变量,单独的expect脚本变量可以这样设置 /usr/local/bin/expect <<EOF  ###安装的expect的路径一般为/usr/bin/expect spawn scp -rp /home/test/ user@x.x.x.x:/home/test expect { "(yes/…
Expect安装 [root@web02 scripts]# yum install expect SSH密钥生成 [root@web02 scripts]# ssh-keygen -t dsa   <==生成密钥 Generating public/private dsa key pair. Enter file in which to save the key (/root/.ssh/id_dsa): Enter passphrase (empty for no passphrase): E…
经常需要把服务器的某些文件传到 Mac,或者获取 Mac 的一些文件到服务器.尽管有很多命令scp, ftp, rsync都可以,霸特每次都有敲好长的命令,好烦,而且还要输入密码.所以想着 wrap 到 expect 脚本这样密码什么的都不用输入了. 下面这个是放在服务器端的,用于把file/folder 传到 Mac #!/usr/bin/expect #file: _getF.expect # 和 Bash 的变量一样 # 定义时不加$,用的时候加 set host RuiLi@10.157…
The world won't care about your self-esteem. The world will expect you to accomplish something before you feel good about yourself. 这世界并不会在意你的自尊,这世界希望你在自我感觉良好之前先要有所成就.…
互联网服务有很多台服务,但是在上线的时候需要将这些服务版本都更新与个个都重启,下面的脚本语言,就是一键发布服务~ 1.在/home/weihu/deploy/ 目录下建下publish .publish下建下bak.bin.cfg.rel文件夹(其中bak为备份.bin为自己写的脚本语言目录.cfg为生产环境的配置文件.rel每次版本发布) 2.安装expect脚本 查看是否已经安装 whereis expect 3.工程版本中,生产配置文件往往是很少变的,但是自己打的版本可能是在开发环境可能和…
expect的核心是spawn expect send set   spawn:spawn是进入expect环境后才可以执行的expect内部命令,相当于shell中的内置命令,通过它,调用需要执行的命令   expect:捕获提示   send:发送交互值(结尾需要加上\n)   set:设置变量     interact:执行完保留交互状态   expect eof :与spawn对应表示捕获终端输出信息终止   $argv :相当于c语言中的参数变量,接收bash传过来的参数.取值方式,索…
#!/usr/bin/expect set timeout set ip [lindex $argv ] spawn ssh root@$ip expect { "yes/no" { send "yes\r"; exp_continue } "password:" { send "123456\r" } } expect "#" send "sed -e '1,1000s/dns-search/#…
这里必须先安装: yum install expect -y expect是一种自动交互语言,能实现在shell脚本中为scp和ssh等自动输入密码自动登录. 下面给出scp和ssh的使用示例: 1.scp [root@BS-WORKERMAN-NFS package]# cat scp.sh #!/bin/bash src=/package dsc=/root/ for i in {4,5,6} do expect -c " spawn scp -r $src/scp.sh root@10.2…
shell脚本实现ssh自动登录远程服务器示例: #!/usr/bin/expect spawn ssh root@192.168.22.194 expect "*password:" send "123\r" expect "*#" interact 原文链接:http://www.xuanhao360.com/linux-expects/ Expect是一个用来处理交互的命令.借助Expect,我们可以将交互过程写在一个脚本上,使之自动化完成…
CentOS 下运维自动化 Shell脚本之expect 一.预备知识: 1.在 Terminal 中反斜杠,即 "" 代表转义符,或称逃脱符.("echo -e与print效果相同") 在 Terminal 结尾反斜杠,当反斜杠用于一行的最后一个字符时,shell把行尾的反斜杠作为续行,这种结构在分几行输入长命令时经常使用. 2.区别 "命令输出" 与 "命令引用" 以及 POSIX(可移植操作系统接口) sh -c &qu…
#!/usr/bin/expect -f set ip [lindex $argv 0]; set password [lindex $argv 1];  set timeout 1 spawn ssh xuxm2007@$ip expect { "*yes/no" { send "yes\r"; exp_continue} "*password:" { send "$password\r" } } expect "…
想写自动化脚本的时候,遇到需要交互的,如ssh,scp,就束手无策,直到我知道了expect. expect 有一系列expect-send对组成,就像聊天一样. expect A send B expect C send D 先来个例子 #!/usr/bin/expect set timeout 5 spawn ssh 192.168.2.38 expect "password" {send "slk\n"} expect "Last login&quo…
有个需求,有个文件删除了,但是不确定线上机器还都存不存在 #!/home/work/.jumbo/bin/expect -f set timeout - set mac [lindex $argv ] set password "***" spawn ssh username@$mac expect { "(yes/no)?" { send "yes\r" expect "*password:" { send "$p…
背景 openvpn生成证书想把它做成一键化,这样添加新用户时候就方便 遇到的问题 我的代码 gg_vpn_keys.exp #!/usr/bin/expect set user [lindex $argv ] set secret [lindex $argv ] spawn /usr/share/easy-rsa/2.0/build-key-pass $user expect { "phrase" {send "$secret\r";exp_continue} &…
安装: mdkir /data/tools cd /data/tools wget http://prdownloads.sourceforge.net/tcl/tcl8.5.19-src.tar.gz cd tcl8.5.19/unix/ ./configure make make install cd /data/tools wget http://nchc.dl.sourceforge.net/project/expect/Expect/5.45/expect5.45.tar.gz .ta…