calaff2
(usa CentOS)
Enviado em 02/02/2011 - 19:48h
Boa Noite galera do vol, gostaria de saber se alguem poderiaajudar.
tenho dois Link com ips dinamicos e gostaria de um script de redudancia se um cair a rota padrão muda para o outro, encontrei um aqui no vol + não ta funcionando. segue o script abaixo.
#!/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.221.2.45"
#####GW da OI
ROTAEMBRATEL="10.1.1.1"
#####GW da Fidelity
ROTAGVT="192.168.0.1"
#####IP fixo da Oi
IPEMBRATEL="10.1.1.2"
#####IP da Fidelity
IPGVT="192.168.0.2"
#####Interface da OI
ETHE="eth1"
#####Interface da Fidelity
ETHG="eth2"
#####IP do terra
TESTE="200.176.2.10"
#####Arquivo de firewall da embratel
FWE="/etc/firewall-oi.sh"
#####Arquivo de firewall da gvt
FWG="/etc/firewall-fidelity.sh"
#####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.1.1.1 dev eth1
route add -host 200.221.2.45 gw 192.168.0.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"
#meuemail@... <suporte@...> </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" meuemail@...
<suporte@...> < /etc/link/embratel_caiu.txt
mail -s "Link da GVT esta no AR" meuemail@...
<suporte@...> < /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.1.1.1 dev eth1
route del -host 200.221.2.45 gw 192.168.0.1 dev eth2