Linux expect的安裝與使用

Expect是在Tcl的基礎上創建的,可以用來做一些Linux下無法做到交互的命令操作,可用於遠程管理服務器。

一、安裝Tcl:

1.下載源碼包:

wget http://nchc.dl.sourceforge.net/sourceforge/tcl/tcl8.4.11-src.tar.gz

2.解壓縮源碼包:

tar xfvz tcl8.4.11-src.tar.gz

3.編譯安裝:

cd tcl8.4.11/unix
./configure --prefix=/usr/tcl --enable-shared
make
make install

4.安裝完畢以後,進入tcl源代碼的根目錄,把子目錄unix下面的tclUnixPort.h copy到子目錄generic中。

二、安裝expect:

1.下載源碼包:
wget http://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz/download

2.解壓源碼包:
tar xzvf expect5.45.tar.gz

3.安裝配置:
cd expect5.45
./configure --prefix=/usr/expect --with-tcl=/usr/tcl/lib --with-tclinclude=../tcl8.4.11/genericmake
make install

4.建立軟連接:
ln -s /usr/tcl/bin/expect /usr/expect/bin/expect

三、expect語法及示例:

set命令:可以設置變量。

spawn命令:激活一個Unix程序來進行交互式的運行。

send命令:向進程發送字符串。

expect命令:等待進程的某些字符串。expect支持正規表達式並能同時等待多個字符串,並對每一個字符串執行不同的操作。

interact命令:執行完畢把持交互狀態,然後在控制檯繼續操作。如果沒有這一句,登陸之後就會退出,而不是留在終端上。

 

示例j腳本test.exp:

#!/usr/bin/expect

set HOST [192.168.11.11 $argv 0]

set PWD [123456 $argv 1]

spawn ssh root@$HOST

expect "*passwrod:"

send "$PWD\r"

expect "*#"

send "echo hello\r"

interact

 

修改權限:chmod 755 test.exp

執行:expect test.exp 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章