为什么80%的码农都做不了架构师?>>>   

使用expect实现自动登录的脚本

代码如下:

#!/usr/bin/expectset timeout 30spawn ssh -l username 192.168.1.1expect "password:"send "ispassr"interact

  1. [#!/usr/bin/expect]
  这一行告诉操作系统脚本里的代码使用那一个shell来执行。这里的expect其实和linux下的bash、windows下的cmd是一类东西。
  注意:这一行需要在脚本的第一行。
  2. [set timeout 30]
  基本上认识英文的都知道这是设置超时时间的,现在你只要记住他的计时单位是:秒
  3. [spawn ssh -l username 192.168.1.1]
   spawn是进入expect环境后才可以执行的expect内部命令,如果没有装expect或者直接在默认的SHELL下执行是找不到spawn命 令的。所以不要用 “which spawn“之类的命令去找spawn命令。好比windows里的dir就是一个内部命令,这个命令由shell自带,你无法找到一个dir.com 或 dir.exe 的可执行文件。
  它主要的功能是给ssh运行进程加个壳,用来传递交互指令。
  4. [expect "password:"]
   这里的expect也是expect的一个内部命令,有点晕吧,expect的shell命令和内部命令是一样的,但不是一个功能,习惯就好了。这个命 令的意思是判断上次输出结果里是否包含“password:”的字符串,如果有则立即返回,否则就等待一段时间后返回,这里等待时长就是前面设置的30秒
  5. [send "ispassr"]
  这里就是执行交互动作,与手工输入密码的动作等效。
  温馨提示: 命令字符串结尾别忘记加上“r”,如果出现异常等待的状态可以核查一下。
  6. [interact]
  执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了。如果没有这一句登录完成后会退出,而不是留在远程终端上。如果你只是登录过去执行

#!/usr/bin/expect #注意安装的路径,不确定 whereis expect 一下set user [lindex $argv 0]spawn bash $userexpect "]:"send "/bin/bash "expect eofexit

转载于:https://my.oschina.net/mosen/blog/291229

expect,spawn用法小结相关推荐

  1. linux 命令spawn,linux expect, spawn用法小记

    使用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄.收藏.可是为什么要这么写却不知其然.本文用一个最短的例子说明脚本的原理. 脚本代码如下: ######## ...

  2. Linux命令--expect spawn的用法(实现人机交互自动化操作)

    一.作用 1.Except命令适用于人机交互场景进行使用,是处理交互的常用命令,可以将交互的过程写成一个脚本,通过调用脚本完成自动化过程: 2.适用场景:ssh登录,ftp登录等 二.基本语法 1.C ...

  3. linux expect案例用法

    EXPECT 用法 expect是基于TCL的相对简单的一个免费脚本编程工具语言,用来实现自动和交互式任务进行通信,无需人的 手工干预,比如ssh\FTP等,这些程序正常情况都需要手工与它们进行交互, ...

  4. linux expect循环用法,Linux expect用法介绍

    1.expect是linux中一个交互命令,一般在 /usr/bin/expect路径下,如果该路径未加入到环境中需要先添加,其作用场景常用于交互执行输入指令 常用命令: expect 获取上一命令执 ...

  5. shell中expect的用法

    shell中expect的用法 expect一般用于实现用脚本来自动远程登录,对远程机器执行相关操作 测试机上的expect目录一般在/usr/bin/expect路径 下面是从网上查询的用法总结: ...

  6. oracle @spool,Oracle spool 用法小结

    Oracle spool 用法小结 转自:http://wallimn.javaeye.com/blog/472182 对于SPOOL 数据的SQL,最好要自己定义格式,以方便程序直接导入,SQL语句 ...

  7. js push(),pop(),unshift(),shift()的用法小结

    js中push(),pop(),unshift(),shift()的用法小结 1.push().pop()和unshift().shift() 这两组同为对数组的操作,并且会改变数组的本身的长度及内容 ...

  8. C++ :: 的用法小结

    原文:http://blog.csdn.net/whz_zb/article/details/6843369 :: 的用法小结: 用于将类内声明的静态数据成员在类外初始化: 用于将类内声明的函数成员在 ...

  9. Java中getResourceAsStream的用法小结

    2019独角兽企业重金招聘Python工程师标准>>> Java中getResourceAsStream的用法小结 一.Java中的getResourceAsStream主要有以下三 ...

最新文章

  1. 周期性定时事件的处理
  2. 深入浅出:移动端(Android 和 iOS)数据采集埋点 SDK
  3. mysql主从复制--转载
  4. [完美]原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari,以及各种使用Chrome和IE混合内核的浏览器...
  5. 运营商在万物互联扮演什么角色?上海联通NB-IoT奠定基础
  6. CodeIgniter中运用composer安装依赖包
  7. html++标签页+界面,CSS+DIV实现多标签页面。
  8. spinnaker_为什么Spinnaker对CI / CD至关重要
  9. 创建抽象类、_【Java视频教程】day16-抽象类
  10. 循环不变式(loop invariant)
  11. matlab节约里程法_节约里程法matlab.doc
  12. 如何把视频kux格式转换mp4?手机怎么观看kux视频
  13. Cadence PSpice 仿真4:共射极运放静态工作点仿真图文教程
  14. 分布式 - 公司使用什么RPC框架,聊聊你理解的RPC原理
  15. python color 颜色名称对照
  16. 开发人员真实编写的骚注释,你学废了么?
  17. oracle internal_function,Oracle Internal Research内部原理研究
  18. Unity3D播放音频数组的问题
  19. DOS下串口通信程序来传送文件的源代码
  20. html中文本框的透明度,jQuery实现textarea文本框半透明文本提示效果

热门文章

  1. Oracle PL/SQL之令人不解的提示(nls_date_format)
  2. React Native 集成
  3. iOS 11开发教程(十三)iOS11应用编辑界面添加视图
  4. Swift3.0语言教程字符串转换为数字值
  5. fot mac matlab_matlab for mac的 安装-亲手实验
  6. python物联网通信_物联网通信RESTDemo示例程序(Python版本)
  7. 希尔排序是一种稳定的排序算法_全面解析十大排序算法之四:希尔排序
  8. python 传感器数据结构_Python常用的数据结构详解
  9. 在世界第二届半机械人奥运会上,瘫痪驾驶员在Cybathlon BCI竞赛中争夺金牌
  10. 健身环爆打老头环!超高难度击败boss,宫崎英高估计也想不到,代码+硬件教程已开源...