码迷,mamicode.com
首页 > 系统相关 > 详细

Linux 之 expect 非交换式命令

时间:2018-06-06 21:51:17      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:expect   非交换式   命令   

expect 非交换式命令

测试实例:非交换式登陆某一台服务器,通常第一次登陆一台服务器的时候,需要按一下yes,然后再输入密码,我们目的是通过expect模拟输入

[root@localhost ~]# ssh 10.3.151.31
The authenticity of host ‘10.3.151.31 (10.3.151.31)‘ can‘t be established.
RSA key fingerprint is 08:1e:93:79:5c:0f:6c:de:68:d5:e8:57:8c:44:a5:57.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘10.3.151.31‘ (RSA) to the list of known hosts.
root@10.3.151.31‘s password: 
Last login: Wed Jun  6 18:32:57 2018 from 10.4.50.229

1、安装expect

yum -y install expect

2、编写test.exp文件

#!/usr/bin/expect

set host [lindex $argv 0]
set password "kang"
spawn ssh "kang@$host"
expect {
                "yes/no"        {send "yes\r";exp_continue}
                "*password"     {send "$password\r"}
}
expect eof

3、运行test.exp文件

[root@localhost ~]# expect test.exp 10.3.151.31
spawn ssh kang@10.3.151.31
kang@10.3.151.31‘s password: 
[kang@localhost ~]$

Linux 之 expect 非交换式命令

标签:expect   非交换式   命令   

原文地址:http://blog.51cto.com/12965094/2125676

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!