一个简单的人机交互脚本-ssh

来源:互联网 发布:西部世界什么意思 知乎 编辑:程序博客网 时间:2024/06/05 19:18

下面献上一个简单的人机交互脚本,用来展示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

###



1 0
原创粉丝点击