91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-06-14 05:01:23 來源:網絡 閱讀:2075 作者:super李導 欄目:建站服務器


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


expect自動交互流程:

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


簡單實例1:

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

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

spawn ssh root@192.168.1.5  free   ##用spawn執行ssh命令 登錄后執行free命令

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

send “123456\n”        ##匹配后發送密碼給系統,\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    獲取匹配信息  匹配成功則執行expect后面的程序動作

send       exp_send   用于發送指定的字符串信息

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

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

exit            退出expect腳本

eof              expect執行結束 退出

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 循環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操作簡單 用途明了 易學易用  不過,現在工作中用的不是很多,日常也多是用來輔助其他程序腳本執行的




向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临武县| 上栗县| 景德镇市| 龙里县| 澄城县| 灵山县| 侯马市| 准格尔旗| 墨竹工卡县| 铁力市| 平定县| 谷城县| 自治县| 孝昌县| 乌鲁木齐县| 鄯善县| 盐山县| 鄂尔多斯市| 珠海市| 金堂县| 白朗县| 清水河县| 浙江省| 多伦县| 瑞安市| 宜春市| 肥东县| 安徽省| 开鲁县| 广河县| 巴塘县| 红原县| 芜湖市| 吉木萨尔县| 昭苏县| 清涧县| 石首市| 中卫市| 宜城市| 仁怀市| 平遥县|