smok
By: a guest | May 11th, 2009 | Syntax:
Bash | Size: 1.17 KB | Hits: 369 | Expires: Never
#!/bin/sh
# interface
dev1=eth1
# gateway
p1=provider_1_gateway
name1=provider_1_name
dev2=eth2
p2=provider_2_gateway
name2=provider_2_name
test_host=91.194.(hidden digits).129
ping_c=3
ip=/sbin/ip
test1=`ping -I $dev1 -c $ping_c $test_host | grep "64 bytes" | wc -l`
test2=`ping -I $dev2 -c $ping_c $test_host | grep "64 bytes" | wc -l`
cur_date=`date "+%Y %b %d %H:%M"`
$ip route del default
if [ $test1 -gt 0 ]; then
if [ $test2 -gt 0 ]; then
echo "$cur_date all links is Ok"
$ip route add default scope global nexthop via $p1 dev $dev1 weight 1 nexthop via $p2 dev $dev2 weight 1
else
echo "$cur_date link to $name2 is down"
$ip route add default scope global nexthop via $p1 dev $dev1
fi
else
if [ $test2 -gt 0 ]; then
echo "$cur_date link to $name1 is down"
$ip route add default scope global nexthop via $p2 dev $dev2
else
echo "$cur_date all links is down"
$ip route add default scope global nexthop via $p1 dev $dev1 weight 1 nexthop via $p2 dev $dev2 weight 1
fi
fi