Linux中expect自動互動指令碼的使用

2021-08-15 06:27:08 字數 835 閱讀 7505

最近在一台物理機上同時執行64個虛擬機器進行測試,但每台虛擬機器的操作都是一樣的,所以用指令碼來操作會方便很多,但唯一的問題就是要自動登入64臺虛擬機器後再進行操作,利用expect能解決這個問題。

expect是用來進行自動化控制和測試的工具,在ubuntu14的安裝方法是:

# apt-get install expect

expect常用命令:

spawn:spawn命令用來啟動新的程序(由spawn啟動的程序的輸出才可以被expect所捕獲)。

expect:從程序接收字串,通常等待程序的反饋。expect可以接收乙個字串引數,也可以接收正規表示式引數。

send:將expect 命令接受的後的與期望字串匹配,若對應則執行相應的send命令來傳送互動資訊。

interact :執行完成後保持互動狀態, 這時可以手動輸入資訊 。

expect eof :程序結束符。

乙個例子:

#!/usr/bin/expect -f 

set ip [lindex $argv 0 ] #接收第乙個引數,並設定ip

set password [lindex $argv 1 ] #接收第二個引數,並設定密碼

set timeout 10 #設定超時時間

spawn ssh root@$ip #傳送ssh請滶

expect #第一次ssh連線會提示yes/no,繼續

"*password:" #出現密碼提示,傳送密碼

} interact #互動模式,使用者會停留在遠端伺服器上面.

linux 自動互動工具expect

簡介 expect是乙個自動化互動套件,主要應用於執行命令和程式時,系統以互動形式要求輸入指定字串,實現互動通訊。expect自動互動流程 spawn啟動指定程序 expect獲取指定關鍵字 send向指定程式傳送指定字元 執行完成退出.注意該指令碼能夠執行的前提是安裝了expect yum y i...

linux自動化互動指令碼expect

expect指令碼是tcl指令碼語言的拓展。用來實現自動的互動式任務,無需人為干預。在實際開發中,執行shell指令碼有時候會輸入linux密碼或者是mysql密碼等,而expect可以幫我們輸入。expect在linux系統中沒有自帶,需要我們自行安裝,在ubuntu系統下,安裝命令如下 sudo...

Linux自動化命令工具expect

expect是unix系統中用來進行自動化控制和測試的軟體工具,應用在互動式軟體中如telnet,ftp,passwd,fsck,rlogin,tip,ssh等等。linux中我們經常寫指令碼處理一些繁瑣的任務,但不幸的是很多互動式的命令我們不得不人肉響應。expect可以代替我們實現與系統的互動。...