expect脚本的简单应用
expect是一个用来处理交互的命令。借助于expect我们可以把交互过程写在一个脚本上,使之自动化完成。
expect最核心的四个命令:
send:用于向进程发送字符串
except:从进程接收字符串
spawn:打开一个新的进程
interact:保持交互的状态
首先一个简单的脚本:
#!/usr/bin/expect #定义解释器和shell一样
set user [lindex $argv 0] #定义变量
set host [lindex $argv 1] #
set passwd "8023jun12"
spawn ssh $user@$host #打开一个ssh进程
expect "password:" #捕捉到“password:"字符串时,调用send发送字符串
send "$passwd\r"
interact #ssh登录后保持登录状态,若没有此语句脚本执行完之后就会返回
执行脚本:
[root@slave expect]# ./1.sh root 192.168.1.120
spawn ssh root@192.168.1.120
root@192.168.1.120's password:
Last login: Tue Dec 27 07:27:07 2016 from slave
[root@master ~]#
可以设置超时时间:
set timeout 100:设置超时时间为100秒,如果要执行的shell命令很长可以设置超时时间长一些。expect超过超时时间没有监测到要找的字符串,则不执行,默认timeout为10秒
expect的命令行参数
[lindex $argv n]获得index为n的参数(index从0开始计算)
$argc为命令行参数的个数
[lrange $argv 0 0]表示第一个参数
[lrange $argv 0 3]表示第1到第3个参数
转载于:https://blog.51cto.com/zidingyi/1887482
expect脚本的简单应用相关推荐
- expect脚本教程_Expect脚本SSH示例教程
expect脚本教程 Expect script is a great linux/unix utility. I have to deal with a lot of unix servers in ...
- Linux下shell自动输入密码,shell脚本通过expect脚本实现自动输入密码
背景:在远程文件下载时,需要输入对方的服务器密码,shell不支持交互输入内容,可以用下面两种方式实现 一.在shell脚本中嵌入expect来实现密码输入 expect是一个自动交互功能的工具.ex ...
- expect脚本中使用普通用户执行sh脚本命令,expect脚本中解决``反引号获取值有问题方法、expect遍历登录不同主机不同密码的主机执行指定命令方法
文章目录 说明 代码 脚本内容 存放ip和其密码 执行脚本 测试[必做] 批量跑脚本 后台验证 说明 今天有一个脚本需求[目前有400台虚拟机,手动登录肯定不现实的],5期所有虚拟机都需要验证是否已经 ...
- Expect的安装与应用,及实现自动检测另外一台服务器运行状态并重启,和使用expect脚本远程批量管理服务器与日志分析
学习Expect Expect是什么? Expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预. Expect是不断发展的,随着时间的流逝,其功能越来越强大,已经成为 ...
- ssh其他机器的Expect脚本
ssh登陆其他机器的Expect脚本 #!/usr/bin/expect -fset user [lindex $argv 0] set ipaddr [lindex $argv 1] set pas ...
- expect脚本同步文件、 expect脚本指定host和要同步的文件 、 构建文件分发系统 、批量远程执行命令...
为什么80%的码农都做不了架构师?>>> 20.31 expect脚本同步文件 使用expect脚本同步文件 说明:核心命令是rsync #! /usr/bin/expect ...
- Expect自动化控制简单介绍
telnet,ftp,Passwd,fsck,rlogin,tip,ssh等等.该工具利用Unix伪终端包装其子进程,允许任意程序通过终端接入进行自动化控制:也可利用Tk工具,将交互程序包装在X11的 ...
- python的简单编程-python入门脚本的简单示例
编程之家收集整理的这篇文章主要介绍了python入门脚本的简单示例,编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考. 感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编来看看吧. ...
- 小型自动化运维--expect脚本之自动同步
小型自动化运维--expect脚本之自动同步 expect脚本可以运用于自动化运维多个方面,例如:可以自动到远程机器执行命令,也可以传输文件到远程机器上. 脚本如下: #!/usr/bin/expec ...
最新文章
- SVO学习笔记(二)
- Android Priority Job Queue (Job Manager):多重不同Job并发执行并在前台获得返回结果(四)...
- 关于Unity中从服务器下载资源压缩包AssetBundle的步骤
- python一般用什么编译器-Python常用编译器原理及特点解析
- excel 某个单元格不是等于空值_这些稀奇古怪的符号,却是Excel高手们常玩的!...
- video和dvd audio区别:
- linux work queue
- swift3.0 类字符串转类(字符串转ViewController)
- 【Java】javaWeb中的三大组件与八大监听器
- linux 查看cuda版本_Ubuntu18.04+Tensorflow GPU版本环境搭建
- SpringBoot+Vue.js实现大文件分片上传、断点续传与极速秒传
- 关于企业费控管理的这些陷阱,你知道吗?
- ARM交叉编译工具链安装和使用教程【图文并茂】
- Scrum板与Kanban如何抉择?敏捷工具:SHSYdsjgyadtgad
- 20221115使用google文档翻译SRT格式的字幕
- Photoshop CS6 序列号完美激活教程
- Java web实时进度条整个系统共用(如java上传、下载进度条、导入、导出excel进度条等)...
- RFID信息系统数据安全对策分析
- unity应用商店脱机怎么解决有vpn(新手小白感谢大佬)
- nuget找不到System.Windows.Forms时用程序包管理器控制台直接下载
热门文章
- 第一次失效_神兵小将:净化之力失效地魔兵兽,全靠特殊办法,铁心方式真霸气...
- maven 关联源码插件_繁琐的任务简单化,Maven的插件机制
- tablueau地图标记圆形_30天30张中国风地图,从青绿山水到秦砖汉瓦
- Linux 下修改(NTFS或fuseblk)磁盘(卷标)显示名称
- iOS中的多线程一般使用场景
- UVA572 Oil Deposits DFS求解
- 百炼OJ - 1004 - 财务管理
- day9-Python学习笔记(二十)数据库备份,修改父类的方法
- Java Inner Class 内部类
- 状态管理工具vuex的基本使用(vuebus的理解)