linux下expect工具使用筆記

2021-05-27 00:07:04 字數 1145 閱讀 6163

1 expect工具介紹可參考此**

自動互動的工具,使用的tcl(tool command language)語言.常用的命令有spawn、expect、send、wait等

expect手冊 ? manpage of expect

2 在ssh中的使用

在linux下要安裝該工具才能使用。

下面的例子是乙個簡單的指令碼,可以輸入伺服器名字並自動輸入密碼。只要乙個簡單的指令便能登入:

#!/usr/bin/expect -f

#auto ssh login

set timeout 30

set sshhost [lindex $argv 0]

spawn ssh [email protected].$sshhost

expect "password:"

send "密碼\r"

interact

改變該指令碼的可執行許可權後便可輸入區域網下最後ip值登入。

在android更新**時也可以用到該工具,在repo的時候要求輸入密碼,如果密碼比較長並要經常更新,則可考慮寫類似指令碼。以下是我在專案中所用得:

#!/usr/bin/expect -f

spawn repo sync

expect "password:"

send "密碼\r"

interact

expect工作原理

從最簡單的層次來說,expect的工作方式象乙個通用化的chat指令碼工具。chat指令碼最早用於uucp網路內,以用來實現計算機之間需要建立連線時進行特定的登入會話的自動化。

chat指令碼由一系列expect-send對組成:expect等待輸出中輸出特定的字元,通常是乙個提示符,然後傳送特定的響應。例如下面的 chat指令碼實現等待標準輸出出現login:字串,然後傳送somebody作為使用者名稱;然後等待password:提示符,並發出響應 sillyme。

引用:login: somebody password: sillyme

這個指令碼用來實現乙個登入過程,並用特定的使用者名稱和密碼實現登入。

expect最簡單的指令碼操作模式本質上和chat指令碼工作模式是一樣的。

Linux下用expect做自動登入工具

參考 tcl 作為linux下互動式操作自動化所必備的工具軟體expect不得不知,也是運維自動化的乙個極為重要的工具,以下為expect的全自動安裝指令碼。install tcl cd root wget tar zxvf tcl8.5.12 src.tar.gz cd tcl8.5.12 uni...

linux 自動互動工具expect

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

linux 下expect的使用

usr bin expect set timeout 60 spawn ssh l guest 210.45.114.190 expect password expect guest node43 send cd sa11011033 r expect guest node43 send touch...