小型自動化運維--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...