скрипт проверки ping
Добавлено: 2014-11-24 13:18:10
Всем привет, прошу помощи в написании скрипта т.к сам до конца допетрить как делать не могу
есть две машины на них установлена freebsd 8.4 настроен nat со всеми плюшками и CARP на внутренних интерфейсах , внешние висят на разных провайдерах, получается в случае выхода из строя одного из шлюзов второй забирает на себя весь трафик, теперь хочу сделать скрипт чтобы при пропадании связи с провайдером ложился внутренний интерфейс тем самым имитировал выключение машины и CARP перебрасывал весь трафик на др шлюз.
реализовать хочу с помощью скрипта, пинговать ДНС провайдера например, если пинги пропадают то вырубается внутренний интерфейс, при появлении пингов интерфейс поднимается , скрипт в крон.
теперь о скрипте
вот что пока есть
правда в этом скрипте нет проверок и после выполнения ifconfig fxp2 down он нормально не поднялся, может по др писать надо
нужно реализовать проверки
ping dns внешний провайдер
если пинг есть то делаем проверку 1
если пинга нет то делаем проверку 2
проверка 1
ping dns внутр
если есть то конец
если нет то вкл внутренний интерфейс
конец
проверка 2
ping dns внутр
если есть то выкл внутр интерфейс
если нет то конец
как то так наверно должно быть, прошу строго не судить программировал только на бейсике
есть две машины на них установлена freebsd 8.4 настроен nat со всеми плюшками и CARP на внутренних интерфейсах , внешние висят на разных провайдерах, получается в случае выхода из строя одного из шлюзов второй забирает на себя весь трафик, теперь хочу сделать скрипт чтобы при пропадании связи с провайдером ложился внутренний интерфейс тем самым имитировал выключение машины и CARP перебрасывал весь трафик на др шлюз.
реализовать хочу с помощью скрипта, пинговать ДНС провайдера например, если пинги пропадают то вырубается внутренний интерфейс, при появлении пингов интерфейс поднимается , скрипт в крон.
теперь о скрипте
вот что пока есть
Код: Выделить всё
#!/bin/sh
testip="12.12.12.12"
kol=$(/sbin/ping -c 4 $testip | grep "received" | awk '{print $4}')
if [ $kol == 0 ]
then
echo "Нет пинга, Ждём 1 минуту" | logger -t NOPING
sleep 60
kol=$(/sbin/ping -c 4 $testip | grep "received" | awk '{print $4}')
if [ $kol == 0 ]
then
echo "Выполнение моего скрипта."| logger -t NOPING
ifconfig fxp2 down
exit 0
fi
fi
нужно реализовать проверки
ping dns внешний провайдер
если пинг есть то делаем проверку 1
если пинга нет то делаем проверку 2
проверка 1
ping dns внутр
если есть то конец
если нет то вкл внутренний интерфейс
конец
проверка 2
ping dns внутр
если есть то выкл внутр интерфейс
если нет то конец
как то так наверно должно быть, прошу строго не судить программировал только на бейсике