Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2243579
  • 博文数量: 230
  • 博客积分: 9346
  • 博客等级: 中将
  • 技术积分: 3418
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-26 01:58
文章分类

全部博文(230)

文章存档

2015年(30)

2014年(7)

2013年(12)

2012年(2)

2011年(3)

2010年(42)

2009年(9)

2008年(15)

2007年(74)

2006年(36)

分类: LINUX

2007-02-06 17:12:46

这是一个基于 bash 的自动判断线路故障的“伪代码”,根据自己实际需要可以再更改
脚本中用了“位”概念做判断
分别用
00 代表无网络
01 代表 GW1
10 代表 GW2
11 代表 GW1 + GW2
对应十进制分别是 0、1、2、3
先分别 ping,然后用用 case 做判断,因此简化了很多,逻辑显得更加明朗
 
 

#! /bin/bash

echo "BOTH" > /tmp/route_flag

GW1="platinum.3322.org"
GW2="platinum.net.cn"

while :;
do
        FLAG="0"

        if ping -c1 -wa $GW1 &>/dev/null; then
                FLAG=`expr 1 + $FLAG`
        fi

        if ping -c1 -wa $GW2 &>/dev/null; then
                FLAG=`expr 2 + $FLAG`
        fi

        case "$FLAG" in
                0)
                        echo "NONE" > /tmp/route_flag
                        ;;
                1)
                        if [ "`cat /tmp/route_flag`" != "GW1" ]; then
                                echo "使用 GW1 做路由"
                                echo "GW1" > /tmp/route_flag
                        fi
                        ;;
                2)
                        if [ "`cat /tmp/route_flag`" != "GW2" ]; then
                                echo "使用 GW2 做路由"
                                echo "GW2" > /tmp/route_flag
                        fi
                        ;;
                3)
                        if [ "`cat /tmp/route_flag`" != "BOTH" ]; then
                                echo "使用双路由"
                                echo "BOTH" > /tmp/route_flag
                        fi
                        ;;
        esac

        sleep 5
done

阅读(4516) | 评论(1) | 转发(2) |
给主人留下些什么吧!~~

cltnet2008-08-19 16:45:59

白金版主,我有几个问题想请问你一下. 第一 在你双线路侦测时,如果你的两条ADSL同属于一个运营商.那就很可能会出现获取到的PPPOE网关相同.这时你上面的ping网关侦测可能会有错误吧. 第二 pppoe拨号后都可以自动设置默认路由.你是让第一个PPP0设置的呢?还是让PPP1去设置默认路由,因为.pppoe拨号后,没有默认路由是ping不通网关的.但是两条ADSL如何设置默认路由呢? 第三 比如你设置ppp0接口为默认路由,那要是ppp0没有拨号成功,而PPP1拨号成功了,那且不是ppp1也不能上网,因为ppp1没有默认路由? 如果你让ppp0 ppp1都自动添加默认路由的话,那PPP0 PPP1都拨号成功后,就会出现两条默认路由,我在linux看过.route add default 可以添加多条默认路由.这样肯定会有问题.我觉得.