Script de FailOver [RESOLVIDO]

1. Script de FailOver [RESOLVIDO]

Fernanda Montovani Albuquerk
fernanda_mon

(usa Debian)

Enviado em 15/03/2021 - 08:55h

Bom dia pessoal, tenho o seguinte script no crontab a cada 10 minutos:

#!/bin/bash
DATA=`date`
GW_DEFAULT="`ip ro | grep -i default | cut -f3 -d" "`"
GW1='187.226.22.1'
GW2='201.55.77.1'
rede1='187.226.22.2'
rede2='201.55.77.3'

ping -c 4 -I $rede1 8.8.8.8 2>&- 1>&-
if [ $? = "0" ];then
route del default gw $GW2
route add default gw $GW2

echo "$DATA - Link1 online" >> /var/log/failover.log
echo "$GW_DEFAULT" >> /var/log/failover.log

else
ping -c 4 -I $rede2 8.8.8.8 2>&- 1>&-

if [ $? = "0" ]; then
route del default gw $GW2
route add default gw $GW2

echo "$DATA - Link1 ofline" >> /var/log/failover.log
echo "$DATA - Link2 online" >> /var/log/failover.log
echo "$GW_DEFAULT" >> /var/log/failover.log

else
echo "todos links estao offline"
fi
fi

O teste funciona sem erros, mas se os dois links cairem e voltar a funcionar,
o sistema nao volta, fica sempre caindo no segundo else com a mensagem
"todos links estao offline".
Realizei varios teste de mesa, mas napo cheguei ao erro. Alguem poderia me
auxiliar neste caso?


  


2. Re: Script de FailOver [RESOLVIDO]

Carlos A. P. Cunha
Carlos_Cunha

(usa Deepin)

Enviado em 15/03/2021 - 09:39h

Nessa parte :


ping -c 4 -I $rede1 8.8.8.8 2>&- 1>&-
if [ $? = "0" ];then
route del default gw $GW2
route add default gw $GW2


Não deveria ser $GW1 ?
Por que nos dois "if" no fim vc del/add sempre GW2, mesmo quando teste é do GW1.....

#-------------------------------------------------------------------------------------#
"Falar é fácil, me mostre o código." - Linus Torvalds
#-------------------------------------------------------------------------------------#



3. Re: Script de FailOver [RESOLVIDO]

Fernanda Montovani Albuquerk
fernanda_mon

(usa Debian)

Enviado em 15/03/2021 - 17:43h


Carlos_Cunha escreveu:

Nessa parte :


ping -c 4 -I $rede1 8.8.8.8 2>&- 1>&-
if [ $? = "0" ];then
route del default gw $GW2
route add default gw $GW2


Não deveria ser $GW1 ?
Por que nos dois "if" no fim vc del/add sempre GW2, mesmo quando teste é do GW1.....

#-------------------------------------------------------------------------------------#
"Falar é fácil, me mostre o código." - Linus Torvalds
#-------------------------------------------------------------------------------------#



Boa tarde Carlos_Cunha, primeiramente obrigada pela ajuda.
Foi apenas erro de digitação, o script real esta correto com $GW1