小型自動化運維 expect指令碼

2021-09-21 05:02:43 字數 1548 閱讀 6055

小型自動化運維--expect指令碼

expect可以讓我們實現自動登入遠端機器,並且可以實現自動遠端執行命令。知道使用者名稱和密碼或者是使用金鑰驗證都可以使用,下面介紹expect 指令碼實現登陸和遠端命令:

# yum install -y expect openssh-clients 【依賴 ssh ,通訊的機器都要安裝 openssh-clients】

# vim /usr/local/sbin/1.expect

#! /usr/bin/expect

set host "192.168.8.120"

set passwd "wtf"

spawn ssh root@$host

expect

"password:" }

interact

#! /usr/bin/expect

set host "192.168.8.120"#這個ip指:終端要遠端的那台主機的位址

set passwd "wtf"#這個wtf是要遠端的那台主機的密碼

spawn ssh root@$host#spawn 是 expect 的語句,後面是登陸另外一台機器的命令

expect#\r 在 expect 指令碼裡面代表回車,\n代表換行

"password:" }

interact#expect 結束符,也可以使用expect eof,eof是end of file的縮寫

# chmod +x /usr/local/sbin/1.expect #授予執行許可權

兩種執行方式:

# /usr/local/sbin/1.expect 【執行命令,無需 /bin/sh ,因為這並不是 shell 指令碼】

# /usr/bin/expect /usr/local/sbin/1.expect 【執行命令,使用 expect 】

(1)expect 指令碼和 shell 結構很像,但是並不一樣。 expect 並不是 shell。

(2)expect 指令碼裡面有密碼有使用者名稱,比較不安全,在不會使用自動化運維工具如 puppet的情況下,先使用 expect 這樣的自定義指令碼的形式,實現自動化。

(3)expect適用於比較小型的公司,伺服器不是太多的情況,如果伺服器數量很多(幾百台上千臺),則需要借助puppet 自動化運維工具。

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

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

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

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

Linux 自動化運維之expect

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