neogeisha
написала 2 августа 2007 года в 11:02 (777 просмотров)
Ведет себя
как женщина; открыла 53 темы в форуме, оставила 266 комментариев на сайте.
есть компик, на нем 3 интерфеса
eth0 — первый провайдер 87.191.4.6
eth1 — резервный провайдер 79.58.56.7
eth2 — смотрит в локалку
как сделать следущее:
проверить есть ли итернет у первого провайдера, если есть то default gw eth0,
если нету то default gw eth1
Последние комментарии
-
OlegL, 17 декабря 2023 года в 15:00 →
Перекличка
21
-
REDkiy, 8 июня 2023 года в 9:09 →
Как «замокать» файл для юниттеста в Python?
2
-
fhunter, 29 ноября 2022 года в 2:09 →
Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt?
6
-
Иванн, 9 апреля 2022 года в 8:31 →
Ассоциация РАСПО провела первое учредительное собрание
1
-
Kiri11.ADV1, 7 марта 2021 года в 12:01 →
Логи catalina.out в TomCat 9 в формате JSON
1
DevOps as a Service from Palark
24/7 SRE & DevOps service to cover all your Kubernetes needs.

Если fly4life написал свой скрипт для переключения каналов, следуя лицензии GPL, то его можно тебе дать. :)
Подождем его ответа. :)
Да валяйте =).
Так почему сразу не вставил скрипт? :)
Ой =).
#!/bin/bash # # Скрипт для проверки состояния текущего интернет-канала и # переключения на альтернативный в случае его неработоспособности. # Команда ip IP_BIN=/bin/ip # шлюзы у разных провайдеров GW1=192.168.201.69 GW2=192.168.201.1 # default gateway текущего (активного) канала CURR=`ip route | grep default | awk '{print $3}'` # TESTIP - IP адреса (имена хостов) для проверки канала, "тестовые адреса" # здесь оба инетовские вдреса, но вообще выбираются исходя из предпочтений # и собственных критериев проверки живости канала (например, # шлюзы провайдера). TESTIP1=ya.ru TESTIP2=nixp.ru # IP адрес mail.ru. Для проверки, поднялся ли активный канал. # В таблицу маршрутизации надо не забыть добавить статический маршрут: # ip route add 194.67.57.26 via $GW1 TESTMAIN=194.67.57.26 . /etc/rc.status rc_reset # Находясь на резервном канале, проверяем, поднялся ли основной, # и, если поднялся, то переключаемся на него if [ "$CURR" == "$GW2" ] then if ping -c 1 $TESTMAIN > /dev/null 2>&1 then echo -n " Switching to Main channel" $IP_BIN route replace default via $GW1 rc_status -v rc_exit fi fi if ! ping -c 1 $TESTIP1 > /dev/null 2>&1 # Если первый тестовый IP-адрес не доступен, то проверяется второй then echo " $TESTIP1 is Unreachable" if ! ping -c 1 $TESTIP2 > /dev/null 2>&1 # Если и второй тестовый IP не доступен, то переключаем канал then echo " $TESTIP2 is Unreachable" case $CURR in $GW1) echo -n " Switching to provider #2" $IP_BIN route replace default via $GW2 rc_status -v ;; $GW2) echo -n " Swithing to provider #1" $IP_BIN route replace default via $GW1 rc_status -v ;; esac rc_exit else echo " Current channel is alive ($TESTIP2)" fi else echo " Current channel is alive ($TESTIP1)" fi rc_exitИзначально писался для SuSE, отсюда всякие «rc_status» и «rc_exit». Для иных дистрибутивов «rc_exit» заменяется на «exit» с соответствующим кодом, а все остальные rc* — удаляются.
Для автопилота скрипт добавляется в расписание cron.
спасибо, попробую разобраться