История изменений
Исправление Humaxoid, (текущая версия) :
Нашел любопытный скрипт который меняет дефолтовый шлюз в таблице маршрутов при пропадании основного канала. Расписал комментарии так, как сам понял его работу. Понимание не полное, так как скрипт не заработал. Поправьте если что не так.
#!/bin/bash
# Данный скрипт пингует шлюз основного канала и смотрит сколько пингов вернулось.
# Если мы на основном канале и потерялось больше двух пакетов из шести, то переключаемся на резервный.
# Если мы на резервном и на основном потерялось меньше двух пингов, то переключаемся обратно на основной.
GW_DEFAULT="11.22.33.44" # IP шлюза на основном канале
IF_DEFAULT="eth0" # Интерфейс основного канала
GW_BACKUP="55.66.77.88" # IP шлюза на резервном канале
IF_BACKUP="eth2" # Интерфейс резервного канала
# Определяем текущий шлюз
GW_CURRENT=$(route -n | grep -E "^0.0.0.0 .* UG .*" | awk '{print $2}')
# Пингуем контрольный хост
PINGS=$(ping -c 5 -i .5 -w 6 -I ${IF_DEFAULT} 8.8.8.8 | grep "packets transmitted" | awk '{print $4}')
# Где:
# -c количество пакетов для отправки
# -i интервал в секундах между отправкой пакетов
if [ "${GW_CURRENT}" == "${GW_DEFAULT}" ]; # если текущий шлюз является основным
then
if [ "${PINGS}" -le "5" ]; then
echo "Переход на резервный маршрут"
route del default
route add default gw ${GW_BACKUP} ${IF_BACKUP}
fi
else
if [ "${PINGS}" -gt "5" ]; then
echo "Возврат к основному маршруту"
route del default
route add default gw ${GW_DEFAULT} ${IF_DEFAULT}
fi
fi
Разъясните пожалуйста действие этой строки?
PINGS=$(ping -c 5 -i .5 -w 6 -I ${IF_DEFAULT} 8.8.8.8 | grep "packets transmitted" | awk '{print $4}')
if [ "${PINGS}" -le "5" ];
if [ "${PINGS}" -gt "5" ];
Исходная версия Humaxoid, :
Нашел любопытный скрипт который меняет дефолтовый шлюз в таблице маршрутов при пропадании основного канала. Расписал комментарии так, как сам понял его работу. Понимание не полное, так как скрипт не заработал. Поправьте если что не так.
#!/bin/bash
# Данный скрипт пингует шлюз основного канала и смотрит сколько пингов вернулось.
# Если мы на основном канале и потерялось больше двух пакетов из шести, то переключаемся на резервный.
# Если мы на резервном и на основном потерялось меньше двух пингов, то переключаемся обратно на основной.
GW_DEFAULT="11.22.33.44" # IP шлюза на основном канале
IF_DEFAULT="eth0" # Интерфейс основного канала
GW_BACKUP="55.66.77.88" # IP шлюза на резервном канале
IF_BACKUP="eth2" # Интерфейс резервного канала
# Определяем текущий шлюз
GW_CURRENT=$(route -n | grep -E "^0.0.0.0 .* UG .*" | awk '{print $2}')
# Пингуем контрольный хост
PINGS=$(ping -c 5 -i .5 -w 6 -I ${IF_DEFAULT} 8.8.8.8 | grep "packets transmitted" | awk '{print $4}')
# Где:
# -c количество пакетов для отправки
# -i интервал в секундах между отправкой пакетов
if [ "${GW_CURRENT}" == "${GW_DEFAULT}" ]; # если текущий шлюз является основным
then
if [ "${PINGS}" -le "5" ];
then
echo "Переход на резервный маршрут"
route del default
route add default gw ${GW_BACKUP} ${IF_BACKUP}
fi
else
if [ "${PINGS}" -gt "5" ]; then
echo "Возврат к основному маршруту"
route del default
route add default gw ${GW_DEFAULT} ${IF_DEFAULT}
fi
fi
PINGS=$(ping -c 5 -i .5 -w 6 -I ${IF_DEFAULT} 8.8.8.8 | grep "packets transmitted" | awk '{print $4}')
if [ "${PINGS}" -le "5" ];