一個簡單的人機交互腳本-ssh

下面獻上一個簡單的人機交互腳本,用來展示expect方法的強大而美妙的功能。

該腳本能夠檢測ssh命令執行之後的提示語,自動匹配完成密碼輸入。


##########################################################

### 複製下面的腳本,保存到文件ssh.sh中即可執行。

### 1、若沒有執行權限,通過 chmod a+x ssh.sh 添加;

### 2、若文件ssh.sh在windows下編輯,請確保語系正確,可在linux上通過 dos2unix ssh.sh 轉換;

### 3、若缺少expect,則需要先安裝之,詳情請參考本人的另外一篇博文《開源軟件expect軟件安裝》;

##########################################################


#!/usr/bin/expect -f

### input parameters
set REMOTE_IP       [lindex $argv 0]
set REMOTE_HOSTNAME [lindex $argv 1]
set PASSWD          [lindex $argv 2]
set REMOTE_CMD      [lindex $argv 3]


# set REMOTE_IP       192.168.200.129
# set REMOTE_HOSTNAME root
# set PASSWD          xos123
# set REMOTE_CMD      ls -al /home


### variables
set timeout 10


### expect ssh

# spawn ssh -t root@192.168.200.129 "ls -al /home"

spawn ssh -t ${REMOTE_HOSTNAME}@${REMOTE_IP} "${REMOTE_CMD}"
expect {
 "*\(yes/no\)?" { send "yes\\r"; exp_continue }
 "*password:" { send "${PASSWD}\r" }
}


expect eof

###



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