shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Aí Vai - Script para redundância de link


From: Rafael Tomelin
Subject: Aí Vai - Script para redundância de link
Date: Tue, 22 Jul 2008 20:45:16 -0300

Pessoal,
Como tive trabalho para achar alguma dica de redundância, resolvi
fazer um script para resolver o meu problema.
O script abaixo está todo comentado, então acho q fica facil para
todos. E como fiz o mais dinâmico possivel, eh só mudar as variaveis
que irá funcionar:
OBS.: Sempre que um link caiu e o outro substitui o mesmo, demora
aproximadamente
de uns 20 segundos para a internet voltar a funcionar de pois que o
script acabar de ser executado.
Esse script eu coloquei no cron para ser executado a cada 5 minutos.


#!/bin/bash

#####A EMBRATEl usa o TERRA para fazer o teste
TERRA="200.176.2.10"

#####A GVT usa o UOL para fazer o teste
UOL="200.98.249.120"

#####GW da Embratel
ROTAEMBRATEL="10.0.0.55"

#####GW da GVT
ROTAGVT="10.1.1.1"

#####IP fixo da embratel
IPEMBRATEL="10.0.0.170"

#####IP da gvt
IPGVT="10.1.1.254"

#####Interface da Embratel
ETHE="eth1"

#####Interface da GVT
ETHG="eth2"

#####IP do terra
TESTE="200.176.2.10"

#####Arquivo de firewall da embratel
FWE="/etc/fw.embratel"

#####Arquivo de firewall da gvt
FWG="/etc/fw.gvt"

#####Data atual
DATA=`date +%Y-%m-%d`

#####Verifica a rorat atua
ROTAATUAL=`(route -v | grep default | awk -F' ' '{ print $2}')` 

#####Deleta a rota
ROTADEL="route del default gw "

##### Comando para adicionar a rota
ROTAADD="route add default gw "

#####Adiciona a rota do terra (Se a embratel estiver fora)
route add -host 200.176.2.10 gw 10.0.0.55 dev eth1
route add -host 200.98.249.120 gw 10.1.1.1 dev eth2

#####Se o terra pingar, o link esta OK
if ( ping -I $ETHE -c 4 $TERRA > /dev/null ); then
        #Cria os logs
        echo $DATA >> /var/log/redundante.log
        echo "Link Embratel esta OK" >> /var/log/redundante.log

        #####Se a rota default for igual a rota da embratel, nao faz nad        
        if [ "$ROTAATUAL" == "$ROTAEMBRATEL" ]; then
                echo "Rota Embratel esta OK" >> /var/log/redundante.log
        #####Se a rota default for diferente da embratel, coloca a rota
default como embratel
        else
                $ROTADEL $ROTAGVT
                $ROTAADD $ROTAEMBRATEL
                $FWE
                echo "Ativado a rota da Embratel" >> /var/log/redundante.log
                #Envian um email avisando que volto o link da embratel
                mail -s "Link da EMBRATEL volto a funcionar"
address@hidden <address@hidden> <
/etc/link/embratel.txt
        fi
        #Finaliza os logs
        echo "Fim da verificacao EMBRATEL" >> /var/log/redundante.log
        echo " " >> /var/log/redundante.log
        echo " " >> /var/log/redundante.log

else
        #####Se pingar eh pq o link esta ok
        if ( ping -I $ETHG -c 4 $UOL >/dev/null ); then
                #cria os logs
                echo $DATA >> /var/log/redundante.log
                echo "Link GVT esta OK" >> /var/log/redundante.log

                ##### Se a rota default for igual a da gvt, nao faz nada
                if [ "$ROTAATUAL" == "$ROTAGVT" ]; then
                        echo "Rota Embratel ainda esta fra do ar" >> 
/var/log/redundante.log
                        echo " " >> /var/log/redundante.log
                        echo " " >> /var/log/redundante.log
                ##### Se a rota default for diferente da GVT, adiciona a rota 
defaul
como sendo da GVT
                else
                        $ROTADEL $ROTAEMBRATEL
                        $ROTAADD $ROTAGVT       
                        $FWG
                        echo "Ativando a rota da GVT" >> /var/log/redundante.log
                        #Envia o email avisando o que link da Embratel caiu
                        mail -s "Link da EMBRATEL fora do AR" address@hidden
<address@hidden> < /etc/link/embratel_caiu.txt
                        mail -s "Link da GVT esta no AR" address@hidden
<address@hidden> < /etc/link/gvt.txt
                fi

                #Cri os logs
                echo "Fim da verificacao GVT" >> /var/log/redundante.log
                echo " " >> /var/log/redundante.log
                echo " " >> /var/log/redundante.log
        fi

fi


#####Deleta rotas do Terra
route del -host 200.176.2.10 gw 10.0.0.55 dev eth1
route del -host 200.98.249.120 gw 10.1.1.1 dev eth2

Tive a colaboração de:
Jorge Borcelli


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]