IP_CHECK="1.1.1.1"
PINGS=$(ping -c 5 -i .5 -w 6 ${IP_CHECK} | grep "icmp_seq=" | wc -l)
#!/usr/bin/env bash
GW_DEFAULT="192.168.1.1" # IP шлюза на основном канале
IF_DEFAULT="eth1" # Интерфейс основного канала
GW_BACKUP="192.168.2.1" # IP шлюза на резервном канале
IF_BACKUP="eth2" # Интерфейс резервного канала
GW_CURRENT=$(ip r s|grep default|awk '{print $3}')
PINGS=$(ping -c 5 -i .5 -w 6 -I ${IF_DEFAULT} ${GW_DEFAULT} | grep "icmp_seq=" | wc -l)
if [ "${GW_CURRENT}" == "${GW_DEFAULT}" ]; then
if [ "${PINGS}" -le "3" ]; then
echo "Switching to backup route"
ip r r default via ${GW_BACKUP}
fi
else
if [ "${PINGS}" -gt "3" ]; then
echo "Switching back to primary route"
ip r r default via ${GW_DEFAULT}
fi
fi
route del default
route add default gw ${GW_DEFAULT} ${IF_DEFAULT}
ip r r default via ${GW_DEFAULT}