免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6502 | 回复: 4
打印 上一主题 下一主题

怎么用expect交互两次?第一次rsh到B机器时输密码,第二次在B上切su时输密码 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-06-15 17:01 |只看该作者 |倒序浏览
本帖最后由 wbjk 于 2011-06-15 17:21 编辑

怎么在expect里面交互两次????

要一次性实现两个交互啊,
想实现
(1)在A机器rsh到B机器的b用户,(2)然后切换到root用户然后执行一些操作,(3)然后自动返回到A机器,
   用了expect好像失败了

#!/usr/bin/expect -f
spawn rsh 128.64.xx.xx -l user_b
expect "Password:"
send "pwd\r"
expect ":/home/user_b>"
send "ls -lrt\r"

spawn su -
expect "Password:"
send "pwd"
expect ":/root>"
send "ls"
send "exit\r"
interact

论坛徽章:
0
2 [报告]
发表于 2011-06-15 17:03 |只看该作者
回复 1# wbjk


    第一次是登陆,第二次是切换到root用户

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
3 [报告]
发表于 2011-06-15 17:16 |只看该作者
怎么在expect里面交互两次????

想实现
(1)在A机器rsh到B机器的b用户,(2)然后切换到root用户然后执 ...
wbjk 发表于 2011-06-15 17:01


要两次exit (send "exit\r" )

第一次exit root (su -) 回到 user_b
第二次exit B机器 ,回到A机器

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
4 [报告]
发表于 2011-06-15 17:21 |只看该作者
spawn su -
这个su发生在A机上

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
5 [报告]
发表于 2011-06-16 09:32 |只看该作者
本帖最后由 expert1 于 2011-06-16 09:33 编辑

回复 1# wbjk
  1.   #!/usr/bin/expect
  2.      
  3.     set user expert1
  4.     set timeout 60
  5.     set pwd "abcdefg" # expert1用户的密码
  6.     set password "123456" # root的密码
  7.     spawn ssh  $user@10.1.1.1
  8.            expect {

  9.                     "not know" {send_user "[exec echo \"not know\"]";exit}

  10.                     "(yes/no)?" {send "yes\r";exp_continue}

  11.                     "password:" {send  "$pwd\r"}

  12.                     "Permission denied, please try again." {

  13.                         send_user "[exec echo \"Error:Password is wrong\"]"

  14.                         exit  }


  15. expect eof
  16.                     }


  17. expect "*$"
  18. send " sudo su -\r"
  19. expect "password"
  20. send "$password\r"
  21. 你的其他操作写这里

  22. send "exit\r"
  23. expect eof

复制代码
自己改改吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP