Wednesday, July 23, 2008

Tcl + expect 簡單實作

這陣子在幫公司做些自動化測試的環境,故常利用到tcl搭配expect故在此做個雜記:
舉個簡單的例子,透過tcl與expect ssh login到遠端機器並將它reboot:

整個tcl的內容如下:
#!/usr/bin/tclsh
package require Expect
set ip [lindex $argv 0]
spawn ssh -o StrictHostKeyChecking=no Administrator@$ip
expect "Password: "
send "aaaa\r"
expect ">"
send "reboot\r"
expect "(y/n)"
send "y\r"
expect "# "

以expect期待得到怎樣的輸出後,便使用send輸入命令,而每台機器所吐出來的prompt都不相同,請自行更改。

執行: ./reboot.tcl 192.168.0.1

1 comment:

kevin said...

我也有使用expect 去reboot 某一台機器

但是當我用背景執行的時候
他會停在 Password: 這個地方

請問你有遇過嗎?