免费注册 查看新帖 |

Chinaunix

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

[文本处理] expect 问题 [复制链接]

论坛徽章:
1
处女座
日期:2014-06-01 17:09:46
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-04-02 16:14 |只看该作者 |倒序浏览
现在有这样一个需求,ssh nnn@ip  如果远程能登陆就算成功,如果弹出Token: 就记录这个远程ip,放在失败列表里。脚本不知道怎么写。
#!/usr/bin/expect -f  
set ip  [ lindex $argv 0 ]

set timeout 6  
spawn ssh  nnn@$ip -q
expect {  
   "*yes/no" { send "yes\r"; exp_continue}  
   "*as*ord:" {send  "nnn\r"}   
   warning*  {send "exit\n}
}

  send "/sbin/ifconfig eth1\r"  
  send  "exit\r"  

expect eof  

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
2 [报告]
发表于 2014-04-02 16:17 |只看该作者
本帖最后由 q1208c 于 2014-04-02 16:18 编辑
  1. for ip in `cat iplist`
  2. do
  3.     OK=`xx.exp $ip`
  4.     if [ ! "x$OK" = "xOK" ]
  5.     then
  6.         echo $ip > fail.list
  7.     fi
  8. done

  9.    
复制代码

论坛徽章:
1
处女座
日期:2014-06-01 17:09:46
3 [报告]
发表于 2014-04-02 16:19 |只看该作者
回复 2# q1208c 远程登录啊。大哥


   

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
4 [报告]
发表于 2014-04-02 16:20 |只看该作者
回复 3# daxuewuhen2014


   

xx.exp 就是你刚才写的脚本呀.

至于它是干嘛的, 你说了算. 不过, 只要你最后 "echo OK"就行了. 否则, 这个ip就会记录为 fail.

论坛徽章:
1
处女座
日期:2014-06-01 17:09:46
5 [报告]
发表于 2014-04-02 16:29 |只看该作者
得到的结果不是我想要的,输出的都是成功的。怎么回事。回复 4# q1208c


   

论坛徽章:
1
处女座
日期:2014-06-01 17:09:46
6 [报告]
发表于 2014-04-02 16:46 |只看该作者
求教高手,如何解决。急求,在线等

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
7 [报告]
发表于 2014-04-02 17:24 |只看该作者
回复 5# daxuewuhen2014


你得先保证你那 expect脚本 能够正确运行. 如果你每次都 echo OK, 那当然是 OK 啦     

论坛徽章:
1
处女座
日期:2014-06-01 17:09:46
8 [报告]
发表于 2014-04-02 19:02 |只看该作者
你这个是错误的。

论坛徽章:
13
双鱼座
日期:2013-10-23 09:30:05数据库技术版块每日发帖之星
日期:2016-04-20 06:20:00程序设计版块每日发帖之星
日期:2016-03-09 06:20:002015亚冠之塔什干火车头
日期:2015-11-02 10:07:452015亚冠之德黑兰石油
日期:2015-08-30 10:07:07数据库技术版块每日发帖之星
日期:2015-08-28 06:20:00数据库技术版块每日发帖之星
日期:2015-08-05 06:20:002015年迎新春徽章
日期:2015-03-04 09:57:09辰龙
日期:2014-12-03 14:45:52酉鸡
日期:2014-07-23 09:46:23亥猪
日期:2014-03-13 08:46:22金牛座
日期:2014-02-11 09:36:21
9 [报告]
发表于 2014-04-03 08:52 |只看该作者
你在expect里面设置超时时间呗,然后判断$?

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
10 [报告]
发表于 2014-04-03 10:55 |只看该作者
先设置超时等待时间,顺利匹配到 *yes* 或者 *as*ord* 则 exit 0,超时则exit 其它,然后捕获exit的值就可以判断是否登录成功了。当然如果用户名和密码错误算登录失败的话,就不能这么干了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP