Использую такой скрипт из cron
Код: Выделить всё
#!/bin/sh
#Шлюз основного канала
GW1="80.xxx.xxx.177"
#Шлюз резервного канала
GW2="192.168.1.1"
/sbin/ping -q -c 1 $GW1 > /dev/null 2>&1
#/sbin/ping -q -c 2 -I 80.xxx.xxx.177 93.158.134.11 > /dev/null 2>&1
if [ $? != 0 ]; then
/sbin/ping -q -c 1 $GW2 > /dev/null 2>&1
if [ $? = 0 ]; then
if [ ! -f /tmp/gw.changed ]; then
/sbin/route change default $GW2 && touch /tmp/gw.changed
/etc/rc.ipfw.adsl > /dev/null 2>&1
fi
fi
else
if [ -f /tmp/gw.changed ]; then
/sbin/route change default $GW1 && rm /tmp/gw.changed
/etc/rc.ipfw > /dev/null 2>&1
fi
fi
Пингуя шлюз 80.xxx.xxx.177 нельзя быть уверенным что интернет есть. Даже при наличии ответа от него все равно интернета может не быть.
А если пинговать yandex, к примеру, то как можно сделать чтобы запрос и ответ посылался через именно этот канал, если маршрут по умолчанию в этот момент другой?
Пробовал использовать ключ -I, но
Код: Выделить всё
ping -q -c 2 -I 80.xxx.xxx.177 93.158.134.11Код: Выделить всё
-I, -L, -T flags cannot be used with unicast destinationКод: Выделить всё
ping -q -c 2 -I vr0 93.158.134.11Код: Выделить всё
invalig multicast interface