我爱编程

linux 系统下expect使用

2018-04-11  本文已影响0人  简简单单来读书

一、定义: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  #停机本次回话

上一篇 下一篇

猜你喜欢

热点阅读