cambio automatico de puertas de enlace

Se genera un script con el siguiente contenido:

#! /bin/sh

#———–este while es para que se ejecute para siempre

while test «1» = «1»

do

#defino el ip de la puerta de enlace

IP=$(/sbin/ip route | awk ‘/default/ { print $3 }’)

#defino los 3 posibles gateways actuales

GW1=«192.168.0.1»

GW2=«192.168.0.2»

GW3=«192.168.0.3»

#es importante tener el espacio antes y despues del corchete para que funcione

#para strings debe tener un solo igual y las variables entre comilla

#Si estoy en el 1, el proximo es el 3. Si estoy en el 3, el proximo es el 2. Si estoy en el 2, el proximo es el 1.

if [ «$IP» = «$GW1» ]; then

NextGW=«192.168.0.3»

elif [ «$IP» = «$GW3» ]; then

NextGW=«192.168.0.2»

else

NextGW=«192.168.0.1»

fi

if (ping -c 50 8.8.8.8 > /dev/null); then

sleep 20 # Conectado. Espero 20 segundos, y luego se reinicia el loop.

else #Significa que no pudo pinguear en 50 veces. Cambio de puerta de enlace a la siguiente.

route del default

route add default gw $NextGW

fi #termina el chequeo del ping

done #————–termina el while

Se agrega a la carpeta /etc/init.d con un nombre. Puede ser rutas.sh Luego se ejecuta el comando:

sudo update-rc.d rutas.sh defaults