expect遠程連接腳本

Expect是Unix/Linux系統中用來進行自動化控制和測試的軟件工具,它是Tcl腳本語言的一個擴展,應用在交互式軟件中如telnet,ftp,ssh,rsync等。下面是一個用expect腳本登錄遠程機器的示例:

#!/usr/bin/expect
set host [lindex $argv 0]
set passwd [lindex $argv 1]
spawn ssh root@$host
expect {
"yes/no" {send "yes\r";exp_continue}
"password:" {send "$passwd\r"}
}
interact

其中expect位於linux下的/usr/bin/目錄下
set 是設置變量的指令 host和passwd都是變量
在shell腳本中$1表示第一個參數,$2表示第二個參數,但是在expect中
第一個參數用 [lindex $argv 0] 表示,第二個參數用 [lindex $argv 1]表示
spawn 後面跟的是shell命令
expect {}裏是交互的過程
首次ssh登陸時會詢問是否登陸,然後輸入密碼
exp_continue的作用是繼續下一個交互
interact的作用是保持遠程連接不退出

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章