真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Expect自動化交互應用實例解析

expect是一個自動化交互套件,主要應用于執(zhí)行命令和程序時,系統(tǒng)以交互形式要求輸入指定字符串,實現(xiàn)交互通信。

成都創(chuàng)新互聯(lián)技術團隊10年來致力于為客戶提供成都做網(wǎng)站、網(wǎng)站建設、外貿(mào)營銷網(wǎng)站建設、成都品牌網(wǎng)站建設、成都營銷網(wǎng)站建設、搜索引擎SEO優(yōu)化等服務。經(jīng)過多年發(fā)展,公司擁有經(jīng)驗豐富的技術團隊,先后服務、推廣了上千網(wǎng)站,包括各類中小企業(yè)、企事單位、高校等機構單位。

expect自動交互流程:

spawn啟動指定進程---expect獲取指定關鍵字---send向指定程序發(fā)送指定字符---執(zhí)行完成退出

簡單實例1:

vim test.exp        ##exp是expect腳本的擴展名

#!/usr/bin/expect        ##使用expect解析程序

spawn ssh root@192.168.1.5  free   ##用spawn執(zhí)行ssh命令 登錄后執(zhí)行free命令

expect “*password”   ##匹配獲取的字符串

send “123456\n”        ##匹配后發(fā)送密碼給系統(tǒng),\n是換行

expect  eof   ##處理結束expect

實例2:

#!/usr/bin/expect

spawn  ssh root@192.168.1.5 free

expect {

    "yes/no"    {exp_send "yes\r";exp_continue}

     "*password"    {exp_send "123456\r"}

}

expect eof

實例3:

#!/usr/bin/expect

spawn test.sh

expect {

    "username"  {exp_send "test\r";exp_continue}

    "*password" {exp_send "123456\r";exp_continue}

     "*mail*"   {exp_send "lidao@163.com\r"}

}

expect eof

expect 常用 命令總結

spawn    交互程序開始   后面跟命令或者指定程序

expect    獲取匹配信息  匹配成功則執(zhí)行expect后面的程序動作

send       exp_send   用于發(fā)送指定的字符串信息

exp_continue        在expect中多次匹配就需要用到

send_user        用來打印輸出 相當于shell中的echo

exit            退出expect腳本

eof              expect執(zhí)行結束 退出

set                定義變量

puts               輸出變量

set timeout    設置超時時間

實例4:

#!/usr/bin/expect

if {$argc !=2 } {

    puts "expect $argv0 ip command"

    exit

}

set ip [lindex $argv 0]

set cmd [lindex $argv 1]

set password "123456"

spawn ssh root@$ip $cmd

expect {

    "yes/no" {send "yes/r";exp_continue}

    "*password" {send "$password\r"}

}

expect eof

expect test.exp 192.168.1.5  "free -m"

實例5:ssh秘鑰認證

生成秘鑰

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa >/dev/null 2>&1

vim test.exp

#!/usr/bin/expect

if [ $argc != 2 ] { 

    send_user "usage: expect test.exp file host\n"

    exit

}

set file [lindex $argv 0]

set host [lindex $argv 1]

set password "123456"

spawn ssh-copy-id -i $file "-p 22 root@$host"

expect {

    "yes/no"    {send "yes\r";exp_continue}

    "*password" {send "$password\r"}

}

expect eof

vim kk.sh 循環(huán)expect腳本

#!/bin/bash

for n in 2 3 4 5 6 7

do 

    expect test.exp ~/.ssh/id_dsa.pub 192.168.1.$n

done

expect操作簡單 用途明了 易學易用  不過,現(xiàn)在工作中用的不是很多,日常也多是用來輔助其他程序腳本執(zhí)行的


分享標題:Expect自動化交互應用實例解析
文章出自:http://weahome.cn/article/pedhds.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部