Скрипт для автоматизации переключения маршрутов Freebsd

И так есть задача сделать резервирование интернет канала между двумя провайдерами . (если по каким то причинам один провайдер перестанет работать , по истечению минуты произойдет изменения шлюза по умолчанию и трафик пойдет через второго провайдера)

#!/bin/sh
IP1=111.111.111.1
IP2=222.222.222.1


GW1=111.111.111.2
GW2=222.222.222.2
/sbin/ping -q -c 1 -S $IP1 yandex.ru > /dev/null 2>&1
if [ $? != 0 ]then
  /sbin/ping -q -c 1 -S $IP2 yandex.ru > /dev/null 2>&1
      if [ $? = 0 ]then
         if [ ! -f /tmp/gw.changed ]then
            /sbin/route change default $GW2 && touch /tmp/gw.changed
         fi
      fi
else
  if [ -f /tmp/gw.changed ]then
    /sbin/route change default $GW1 && rm /tmp/gw.changed
  fi
fi

Далее все это хозяйство можно повесить в крон , с интервалом выполнения  1 — 2 минуты .

Оригинал статьи