免费注册 查看新帖 |

Chinaunix

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

[网络相关] 求教shell处理expect问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-07-02 16:11 |只看该作者 |倒序浏览
本帖最后由 gggg_gdsk 于 2013-07-02 16:13 编辑

问题是这样的 我要做一个网络ping监控程序 在服务器端执行ping命令得到返回值 在网页上显示
这个已经制作完了
php代码
  1. $list = array();
  2.         exec("ping -c $count -w 1 ".$row['ipaddress'], $list);
  3.         $str = explode(":",$list[1]);
  4.         $row['ipaddress'] = $str[1];
复制代码
但是现在网络结构变化了 通过服务器无法ping目标地址 需要在路由器上ping
服务器上 执行ping  “exec("ping -c $count -w 1 ".$row['ipaddress'], $list);”不行
我想写一个expect脚本登陆到路由器上执行ping 然后返回结果到服务器端 再显示到网页上
  1. ping -a 192.168.1.1 -c 1 192.168.1.2
  2.   PING 192.168.1.2: 56 data bytes, press CTRL_C to break
  3.     Reply from 192.168.1.2: bytes=56 Sequence=1 ttl=251 time=7 ms

  4.   --- 192.168.1.2 ping statistics ---
  5.     1 packet(s) transmitted
  6.     1 packet(s) received
  7.     0.00% packet loss
  8.     round-trip min/avg/max = 7/7/7 ms
复制代码
路由器执行ping命令的结果
  1. spawn telnet
  2. expect "telnet> "
  3. send "open 192.168.1.1\r"
  4. expect "Username:"
  5. send "$USER\r"
  6. expect "Password:"
  7. send "$PASSWD\r"
  8. expect "<router>"
  9. send "ping -a 192.168.1.1 -c 1 192.168.1.2  \r"
  10. expect -re {PING 192.168.1.2: 56 data bytes, press CTRL_C to break\s+(.*)\r\n\r\n\s+--- 192.168.1.2 ping statistics ---}
复制代码
expect脚本
我用$expect_out(1,string)得到 “Reply from 192.168.1.2: bytes=56 Sequence=1 ttl=251 time=7 ms”
但是我现在不知道怎么把上面这个返回到我的网页中
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP