小型自動化運維 expect指令碼之傳遞函式

2021-09-21 05:19:35 字數 1251 閱讀 3203

小型自動化運維--expect指令碼之傳遞函式

[root@shiyanji ~]# vim 3.expect

#!/usr/bin/expect

set user [lindex $ar** 0]

set host [lindex $ar** 1]

set passwd "wtf"

set cm [lindex $ar** 2]

spawn ssh $user@$host

expect

"password:"

}expect "]*"

send "$cm\r"

expect "]*"

send "exit\r"

expect eof

對檔案3.expect授予執行許可權

# chmod +x 3.expect

執行3.expect

# ./3.expect root 192.168.8.103 「cd /tmp;ls」,截圖如下:

# ./3.expect root 192.168.8.103 「w」,截圖如下:

注:(1)shell 中的變數是 $0 $1,而 expect 裡面的變數是 $ar** 0,$ar** 1。expect 指令碼中的引數比 shell 中的複雜一些,而且是從數字 0 開始,[lindex #ar** 0] 表示第乙個引數,[lindex $ar** 1] 表示第二個引數。

(2)結束符有 expect eof 和 interact,二者取一即可。

擴充套件:可以設定把 passwd 作為乙個引數,這樣就不存在被別人竊取密碼的情況。

set user [lindex $ar** 0]

set host [lindex $ar** 1]

set passwd [lindex $ar** 3]

set cm [lindex $ar** 2]

# ./3.expect root 192.168.8.103 「cd /tmp;ls」 wtf,截圖如下:

小型自動化運維 expect指令碼

小型自動化運維 expect指令碼 expect可以讓我們實現自動登入遠端機器,並且可以實現自動遠端執行命令。知道使用者名稱和密碼或者是使用金鑰驗證都可以使用,下面介紹expect 指令碼實現登陸和遠端命令 yum install y expect openssh clients 依賴 ssh 通訊...

小型自動化運維 expect指令碼V2版

小型自動化運維 expect指令碼v2版 在實際運維工作中,需要我們向遠端主機同步資料,可以用rsync來實現。那麼用expect指令碼怎麼實現資料傳輸完成之後自動退出遠端主機呢?在開始expect指令碼v2版之前,我們先來看下,使用expect指令碼來實現遠端主機的登入,指令碼如下 usr bin...

Linux 自動化運維之expect

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