linux 系统下expect使用

一、定义:expect是linux上的一种人机交互的一套工具,它里面的命令能完成数据的接受、发送以及新进程的启动。

二、参数

spawn:发起一个新的启动进程,如:spawn ssh perfadmin@10.124.X.X (该命令是完成对10.124.X.X 的ssh登录),spawn scp 本地文件 perfadmin@10.124.X.X:远程机器的地方(启动了scp,将本地文件拷贝到10.124.X.X机器指定的地方)

expect:接收交互进程中发送的数据,在接收数据中可以使用正则表达式匹配。如我们平常的ssh登录后,会给一个如下提示:

expect接收内容为类似上图红色部。对于上面的情况expect命令为:expect "*password"

send:接收进程发送的数据

interact:继续本次的回话

expect eof:结束本次的回话

exp_continue:匹配多个字符串在执行动作后加此命令

三、举例说明

eg:连接10.124.X.X机器,并在10.124.X.X机器上执行删除文件和启动nmon

#!/usr/bin/expect  目的是为了引用expect命令

spawn ssh root@10.124.X.X     #连接10.124这台机器

expect  "*password:"   #接受到password这个词语是

send  "1qaz2wsx\r"   #就输入密码

expect "Last login:*"   #然后接受到Last login时

send "cd /home/root/wang\r"  #将目录切换到 wang这个目录

send "rm -rf testwang.nmon\r"   #继续输入删除testwang.nmon命令

send "./nmon -F 20180411.nmon -t -s 10 -c 100"   #继续执行文件下的nmon命令

expect eof  #停机本次回话

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 请不要转载 背景介绍 Expect 程序主要用于人机对话的模拟,就是那种系统提问,人来回答 yes/no ,或者账...
    羽风之歌阅读 53,648评论 12 46
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,228评论 2 33
  • 2017年01月8日—10日,善明企划全国巡讲郑州站将于郑州器材城开课,作为年会前的重要课程始一,本次课程总...
    善明企划意茹阅读 1,528评论 0 0
  • 从大学毕业开始到现在,算下来一共快五年的时间了,其中将近四年都是在于文字打交道,现在想来还有点阴差阳错的感觉。 虽...
    小小二萌阅读 91评论 4 2
  • 迷雾山间过 细雨水里眠 行者忘归路 醉叹画中仙 雾漫山间过 雨入水里眠 行者忘归路 醉叹画中仙
    文真阅读 204评论 1 1