
rafaelsilvad
(usa Debian)
Enviado em 19/06/2013 - 09:53h
Olá Pessoal, bom dia, estou com um problema, preciso configurar um script de alta disponibilidade de links para um cliente mas não entendo quase nada de shell, peguei uns modelos no forum tentei modelar adaptando a minha necessidade mas ainda não consegui colocar pra funcionar, o mais perto que cheguei foi isso:
Observação:
o ambiente de teste deste script é uma maquina na rede interna, configurada com
eth0:
ip: 192.168.254.128
gateway: 192.168.254.254 (link principal)
eth1:
ip: 192.168.254.120
gateway: 192.168.254.150
#!/bin/bash
# Testa pingar o ip 192.168.254.1
if ping -c 2 -i 1 -q 192.168.254.1 > /dev/null 2>&1; then
echo "PING OK"
else
# pra caso ele não consiga procurar o gateway final 254, se achar remover
if route -n | grep 192.168.254.254; then
route del default gw 192.168.254.254 > /dev/null
# adicionar o gateway final 250
echo "adicionando rota secundaria"
route add default gw 192.168.254.150 > /dev/null
echo "rota secundaria adicionada"
fi
fi
# Testa se o link principal voltou a atividade, e troca de volta.
if
ping -c 2 -i 1 -q 192.168.254.142 > /dev/null 2>&1; then
echo "voltando para o link principal"
route del default gw 192.168.254.150 > /dev/null
echo "Adicionando Rota do Link dedicado"
route add default gw 192.168.254.254 > /dev/null
fi
#fim do script.
Perdão pelo amadorismo pessoal, mas se alguem puder me ajudar, acho que minha falha esta na estrutura condicional do script só preciso que ele
teste conexões por um link, falhando configure o outro mas continue testando o principal e assim que ele voltar configurar ele de volta, pretendo agendar esse script no cron para rodar de 5 em 5 minutos