2011年2月22日

[自動化網管] 利用 expect 自動化登入系統並執行重開機

如系統無安裝 expect 可執行以下安裝步驟

su -
yum install expect

執行登入並重開機的程式碼如下

#!/usr/bin/expect

set host "[lrange $argv 0 0]" #變數1: 主機 IP
set pass "[lrange $argv 1 1]" #變數2: 主機密碼

spawn /usr/bin/ssh root@$host #執行 ssh 並用 root 帳號登入指定的 IP
expect "Are you sure you want to continue connecting (yes/no)?" {send "yes\r"} #抓到特定 pattern 就送出 yes 字串
expect "password:" {send "$pass\r"} #抓到特定 pattern 就送出 $pass 變數所存到密碼內容
expect "root>" {send "reboot\r"} #抓到特定 pattern 就送出 reboot 字串並執行
send "\r" #空一格
send "exit\r" #登出

沒有留言: