Expect自動化交互應(yīng)用實例解析-創(chuàng)新互聯(lián)

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

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的銅仁網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

expect自動交互流程:

spawn啟動指定進程---expect獲取指定關(guān)鍵字---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  ##處理結(jié)束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 常用 命令總結(jié)

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

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

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

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

send_user        用來打印輸出 相當(dāng)于shell中的echo

exit            退出expect腳本

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

set                定義變量

puts              輸出變量

set timeout   設(shè)置超時時間

實例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秘鑰認(rèn)證

生成秘鑰

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操作簡單 用途明了 易學(xué)易用  不過,現(xiàn)在工作中用的不是很多,日常也多是用來輔助其他程序腳本執(zhí)行的

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)站題目:Expect自動化交互應(yīng)用實例解析-創(chuàng)新互聯(lián)
標(biāo)題URL:http://muchs.cn/article38/cshepp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、虛擬主機自適應(yīng)網(wǎng)站、Google服務(wù)器托管、用戶體驗

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)