Script failover

1. Script failover

cleber
clesousa

(usa Outra)

Enviado em 27/03/2014 - 09:37h

Pessoal bom dia, estou tendo algumas dificuldades por não entender direito shell script, é o seguinte, estou utilizando o script do nosso amigo Roberto costa: http://www.vivaolinux.com.br/script/Redundancia-de-dois-links-de-internet

Está funcionando legal, adicionei neste script algumas linhas para subir determinado script de firewall caso determinado link estivesse UP, blza consegui fazer isso, porém no crontab deixo este script rodando de 1 em 1 minuto, e a saída é a seguinte:

Thu Mar 27 09:31:01 BRT 2014 - Rota default é a Principal! Link 15 megas VIRTUA NET Gateway 11.0.0.25
Thu Mar 27 09:31:01 BRT 2014 - Subindo firewall para rota principal VIRTUA NET
Thu Mar 27 09:31:01 BRT 2014 - Testando Link Principal VIRTUA NET...
Thu Mar 27 09:31:01 BRT 2014 - Link Principal VIRTUA NET está UP!
Thu Mar 27 09:32:01 BRT 2014 - Rota default é a Principal! Link 15 megas VIRTUA NET Gateway 11.0.0.25
Thu Mar 27 09:32:01 BRT 2014 - Subindo firewall para rota principal VIRTUA NET
Thu Mar 27 09:32:01 BRT 2014 - Testando Link Principal VIRTUA NET...
Thu Mar 27 09:32:01 BRT 2014 - Link Principal VIRTUA NET está UP!
Thu Mar 27 09:33:01 BRT 2014 - Rota default é a Principal! Link 15 megas VIRTUA NET Gateway 11.0.0.25
Thu Mar 27 09:33:01 BRT 2014 - Subindo firewall para rota principal VIRTUA NET
Thu Mar 27 09:33:01 BRT 2014 - Testando Link Principal VIRTUA NET...
Thu Mar 27 09:33:01 BRT 2014 - Link Principal VIRTUA NET está UP!

Está funcionado, o problema é que gostaria de adicionar algo como uma comparação (não sei se essa é a palavra correta) para que caso o link principal estivesse ativo, ele não subisse o firewall referente ao link principal novamente..

meu script abaixo:

##################################### INICIO #########################################################
export LC_ALL=C
export PATH=/bin:/usr/bin:/sbin:/usr/sbin

GWUP=`ip route show | grep ^default | cut -d " " -f 3`

# Gateway Principal
GW1=11.0.0.25; export GW1 # Substitua pelo gateway do seu link principal

# Gateway Slave
GW2=12.0.0.35; export GW2 # Substitua pelo gateway do seu link backup

# Etapa 1 = Verifica se o gateway é o principal, ser for ele vai subir o firewall referente a GW1 e ir pra etapa 2 se nao for ele vai pra etapa 2.1
if [ $GWUP == $GW1 ]; then

# Etapa 2 = Informa com log que a rota principal é o gateway 1 e vai para a etapa 6
echo "`date` - Rota default é a Principal! Link 15 megas VIRTUA NET Gateway 11.0.0.25" >> /var/log/redundancia/redundancia.log

# Etapa 2-1 = Sobe firewall referente GW1 VIRTUA
/etc/init.d/firewall/firewall_virtua.sh
echo "`date` - Subindo firewall para rota principal VIRTUA NET" >> /var/log/redundancia/redundancia.log

else

# Etapa 2.1 = Informa com log que a rota principal é o gateway 2 e vai para a etapa 3
echo "`date` - Rota default, Slave! Link 10 megas GVT Gateway 12.0.0.35" >> /var/log/redundancia/redundancia.log

/etc/init.d/firewall/firewall_gvt.sh
echo "`date` - Subindo firewall para rota Slave GVT" >> /var/log/redundancia/redundancia.log

# Etapa 3 = Verifica a disponibilidade do link com gateway 1
echo "`date` - Verificando a disponibilidade do link principal VIRTUA NET 15 megas..." >> /var/log/redundancia/redundancia.log
route add -net 0.0.0.0 gw $GW1
ping -I eth1 200.160.2.3 -c 5 -A > /dev/null
if [ $? -eq 0 ]; then

# Epata 4 = Se o gateway principal voltou ele exclui a rota do gateway 2 para manter o gatewy 1 ativo
echo "`date` - Link pricipal VIRTUA NET voltou!" >> /var/log/redundancia/redundancia.log
route del -net 0.0.0.0 gw $GW2
exit 0
# Se o gateway principal voltou então sobe o firewall para o gateway 1 principal
/etc/init.d/firewall/firewall_virtua.sh
echo "`date` - Subindo firewall para rota principal VIRTUA NET que voltou!!" >> /var/log/redundancia/redundancia.log


else
# Etapa 5 = Agora se o gatewy principal nao voltou, ele deleta a rota do gateway 1 e mantem a rota do gateway 2
echo "`date` - Link principal VIRTUA NET ainda nao voltou..." >> /var/log/redundancia/redundancia.log
echo "`date` - Link de backup GVT será mantido." >> /var/log/redundancia/redundancia.log
route del -net 0.0.0.0 gw $GW1
exit 0

fi

fi

# Etapa 6 = Testando se o link principal com gateway 1 esta normal, se tiver ele vai pra etapa 7
echo "`date` - Testando Link Principal VIRTUA NET..." >> /var/log/redundancia/redundancia.log
ping -I eth1 200.160.2.3 -c 5 -A > /dev/null

if [ $? -eq 0 ]; then

# Etapa 7 = Diz que o link principal com gateway 1 esta normal e finaliza.
echo "`date` - Link Principal VIRTUA NET está UP!" >> /var/log/redundancia/redundancia.log

else
# Etapa 8 = Diz que o link principal nao esta funcionado e deleta a rota do gateway 1 e adiciona a rota do gateway 2
echo "`date` - Link Principal VIRTUA NET está DOWN..." >> /var/log/redundancia/redundancia.log
echo "`date` - Subindo Link de backup GVT..." >> /var/log/redundancia/redundancia.log
route del -net 0.0.0.0 gw $GW1
ip route add default via $GW2
# Se link de backup assumir, sobe firewall para link slave GVT.
/etc/init.d/firewall/firewall_gvt.sh
echo "`date` - Subindo firewall para rota slave GVT" >> /var/log/redundancia/redundancia.log

fi
###############################################FIM##################################################

Agradeço qualquer ajuda!



  


2. UP

cleber
clesousa

(usa Outra)

Enviado em 28/03/2014 - 08:56h

UP






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts