скрипт проверки ping

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
ges35
рядовой
Сообщения: 11
Зарегистрирован: 2011-05-16 11:35:01

скрипт проверки ping

Непрочитанное сообщение ges35 » 2014-11-24 13:18:10

Всем привет, прошу помощи в написании скрипта т.к сам до конца допетрить как делать не могу
есть две машины на них установлена 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
правда в этом скрипте нет проверок и после выполнения ifconfig fxp2 down он нормально не поднялся, может по др писать надо
нужно реализовать проверки

ping dns внешний провайдер
если пинг есть то делаем проверку 1
если пинга нет то делаем проверку 2

проверка 1
ping dns внутр
если есть то конец
если нет то вкл внутренний интерфейс
конец

проверка 2
ping dns внутр
если есть то выкл внутр интерфейс
если нет то конец

как то так наверно должно быть, прошу строго не судить программировал только на бейсике

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

ges35
рядовой
Сообщения: 11
Зарегистрирован: 2011-05-16 11:35:01

Re: скрипт проверки ping

Непрочитанное сообщение ges35 » 2014-12-02 7:17:29

М да смотрю все так и бросились помогать прям закидали скриптами
вот рабочий проверенный скрипт

Код: Выделить всё

#!/bin/sh
host="8.8.8.8"
# Проверяем доступность Google DNS
/sbin/ping -c 10 -q ${host} >/dev/null
case "$?" in
      0)
      /sbin/ifconfig fxp0 up >/dev/null
      ;;
     *)
     /sbin/ifconfig fxp0 down >/dev/null
 ;;
esac
может кому пригодиться