linux自動交互

本文主要使用expect來進行linux進行自動交互。

  1. 安裝
    expect需要tcl語言的支持,所以需要先安裝tcl
    下載: wget http://nchc.dl.sourceforge.net/sourceforge/tcl/tcl8.4.11-src.tar.gz
    解壓: tar -xzvf tcl8.4.11-src.tar.gz
    配置:cd tcl8.4.11/unix && ./configure --prefix=/usr/tcl --enable-shared && make &&make install
    拷貝:安裝完畢以後,將目錄unix下面的tclUnixPort.h copy到tcl8.4.11 目錄下的generic目錄中
    expect下載與安裝
    下載:wget http://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz
    解壓:tar -xzvf expect5.45.tar.gz
    配置:cd expect5.45
    安裝: ./configure --prefix=/usr/expect --with-tcl=/usr/tcl/lib --with-tclinclude=../tcl8.4.11/generic && make && make install
    創建軟鏈接
ln -s /usr/expect/bin/expect /usr/bin/expect

然後就可以使用了例如 yum install g++ expect -y
或者下面的腳本

#!/usr/bin/expect
#set timeout 20 #設置超時時間
spawn ssh [email protected]
expect "*password:"
send "root"
# expect "*#"
interact

解釋:

1.#!/usr/bin/expect :需要先安裝軟件,然後來說明用expect來執行

2.spawn ssh [email protected] :spawn是進入expect環境後纔可以執行的expect內部命令,用來執行它後面的命令。

3.expect “*password:” :也是expect的內部命令,用來解惑關鍵的字符串,如果有,就會立即返回下面設置的內容,如果沒有就看是否設置了超時時間。

4.send “root”:這時執行交互式動作,與手工輸入密碼等效,在expect截獲關鍵字之後,它就會輸入send後面的內容。

5.interact :執行完畢後把持交互狀態,把控制檯,這時候就可以進行你想要進行的操作了。如果沒有這一句,在登陸完成之後就會退出,而不是留在遠程終端上。

發佈了88 篇原創文章 · 獲贊 32 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章