[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]
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Aí Vai - Script para redundância de link,
Rafael Tomelin <=