免费注册 查看新帖 |

Chinaunix

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

如何用shell侦测网络状态 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-08 23:09 |只看该作者 |倒序浏览
ping 222.174.245.85 -c 5

PING 222.174.245.85 (222.174.245.85) 56(84) bytes of data.
From 222.174.245.86 icmp_seq=0 Destination Host Unreachable
From 222.174.245.86 icmp_seq=1 Destination Host Unreachable
From 222.174.245.86 icmp_seq=2 Destination Host Unreachable
From 222.174.245.86 icmp_seq=3 Destination Host Unreachable
From 222.174.245.86 icmp_seq=4 Destination Host Unreachable


设置变量i
出现这种情况Destination Host Unreachable 返回1


ping 222.174.245.86 -c 5
PING 222.174.245.86 (222.174.245.86) 56(84) bytes of data.
64 bytes from 222.174.245.86: icmp_seq=0 ttl=64 time=0.062 ms
64 bytes from 222.174.245.86: icmp_seq=1 ttl=64 time=0.045 ms
64 bytes from 222.174.245.86: icmp_seq=2 ttl=64 time=0.041 ms
64 bytes from 222.174.245.86: icmp_seq=3 ttl=64 time=0.041 ms
64 bytes from 222.174.245.86: icmp_seq=4 ttl=64 time=0.043 ms

设置变量i
出现这种情况返回0


if i==1 sh bbb
   else ssh aaa
endif


如果3分钟执行一次上边的脚本呢?

[ 本帖最后由 razar 于 2009-5-8 23:12 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-05-08 23:23 |只看该作者
ping 222.174.245.86 -c 5 && sh aaa || sh bbb

论坛徽章:
0
3 [报告]
发表于 2009-05-08 23:25 |只看该作者
三分钟定时启动,启动cron。crontab -e,添加
*/3 * * * * URSHELL

论坛徽章:
0
4 [报告]
发表于 2009-05-08 23:25 |只看该作者

回复 #2 kwokcn 的帖子

ping 222.174.245.86 -c 5 && sh aaa || sh bbb

怎么赋值i呢 ?
你的 程序好像两个代码都执行了

[ 本帖最后由 razar 于 2009-5-8 23:29 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2009-05-08 23:30 |只看该作者
这一行已经进行判断了。
如果一定要返回值,执行ping命令以后的$?就是你所说的i:

  1. #!/bin/sh

  2. ping 192.168.1.154 -c 5 > /dev/null

  3. if [[ "$?" == "1" ]]; then
  4.     ssh bbb
  5. else
  6.     ssh aaa
  7. fi
复制代码

论坛徽章:
0
6 [报告]
发表于 2009-05-08 23:32 |只看该作者
原帖由 razar 于 2009-5-8 23:25 发表
ping 222.174.245.86 -c 5 && sh aaa || sh bbb

怎么赋值i呢 ?
你的 程序好像两个代码都执行了

你的环境?


  1. # ping 192.168.1.154 -c 5 > /dev/null && echo yes || echo no
  2. yes
  3. # ping 192.168.1.24 -c 5 > /dev/null && echo yes || echo no
  4. no
复制代码

论坛徽章:
0
7 [报告]
发表于 2009-05-08 23:34 |只看该作者

回复 #5 kwokcn 的帖子

ping 192.168.1.154 -c 5  的时候能生成个变量,如果ping 192.168.1.154 -c 5| grep unreachable结果中有unreachable 那么i=1,否则i=0

论坛徽章:
0
8 [报告]
发表于 2009-05-08 23:36 |只看该作者
原帖由 razar 于 2009-5-8 23:34 发表
ping 192.168.1.154 -c 5  的时候能生成个变量,如果ping 192.168.1.154 -c 5| grep unreachable结果中有unreachable 那么i=1,否则i=0

$?就是执行ping之后的return value,已经能判断ping的结果状态了,何必再自己判断呢?

论坛徽章:
0
9 [报告]
发表于 2009-05-08 23:40 |只看该作者

回复 #8 kwokcn 的帖子

谢谢,我明白了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP