shell script para IPROUTE2
Preciso que alguem faça um script para mim para um balanceamento de carga que possuo..
a ideia é a seguinte...
tenho 2 links de internet aqui.. balanceados por um LInux com IPROUTE2..
se um link cair.. um script shell que ficara monitorando a interface de internet dos 2 roteadores devera remover uma das rotas que caiu da rota de balanceamento...
e continuar a ficar chegando se o link voltar.. ele tem que readicionar essa rota novamente...
detalhes: esse script precisa detectar que o link caiu via ping.. se o link cair.. ele executa um comando para remover uma das rotas do balanceamento.. porem.. depois dele remover essa rota.. o script nao pode ficar re-executando esse script para tirar a rota.. ate que o link volte.. deu para entender?
pois a ideia é deixar esse script em LOOP rodando a cada um intervalo de tempo.. tipo a cada 2 minutos.. se o link cair.. ele remove uma das rotas do linux.. porem.. depois na proxima execucao do script.. ele nao pode executar novamente essa remocao da rota.. pois ela ja foi feita.. e dae vai ficar dando erro.. blz?
interessados.. favor enviar mensagens privativas aqui no forum mesmo..
OBs.: Claro que esse trabalho será remunerado por mim. :-)
shell script para IPROUTE2
Ola..
Possuo algo parecido com o quer fazer...., vou te passa o script e vc modifica conforme sua necessidade:
#!/bin/bash
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/sbin
MISSED=0
Count=0
## Dá um salto de 6 pacotes no IP
while [ $Count -lt 6 ]; do
if ! ping -c 1 201.XXX.XXX.XXX ; then
((MISSED++))
fi
((Count++))
done
echo "Terminou"
## Se falhou em mais de 4 pacotes do ping então limpa as configurações ##
if [ $MISSED -ge 5 ]; then
Tuas_regras_para_Limpar (aqui é contigo)
fi
OBS-> adicionei o script no cron de 3 em 3 minutos...
O resto é contigo...
t+
shell script para IPROUTE2
blz cara.. vou testar...
mais isso faz a checagem de que comentei ?
se ele remover a regra .. depois que ele detectou que o link nao responde mais.. no proximo RUN do script.. ele nao vai tentar remover a regra novamente ?
ou ele checa se ja foi executado ?
esse é o meu maior problema hoje...
shell script para IPROUTE2
Vai sim, mas isso não vai ser um problema.. simplesmente vai rodar o script ou regras (como vc definir) para remoção do link novamente...
Você tbem pode adapta-lo....
[];
shell script para IPROUTE2
vc sabe se existe como fazer essa checagem ?
de repente gravar um log a palavra "Link OFF" e fazer ele ler esse log por esas linha antes de executar o comando ? se estiver LINK OFF no arquivo de log.. ele nao faz nada.. caso contrario.. se o ping responder .. ele adiciona a rota novamente ... e loga no arquivo "Link ON" .. e depois como o ping ira responder.. ele vai checar se existe a palavra "LINK ON" dentro do logfile.. se tiver.. ele nao faz nada..
vc tem ideia de como faz isso no shell script ?
shell script para IPROUTE2
bom nao se esqueca de que alterar seu load balance voce deve (deve nao, é quase que obrigatorio) voce limpar o cache de rotas, pois senao ele continuara roteando os pacotes pelo link invalido (isso é uma grave falha do iproute2), o comando "ip flush cache" resolve o seu problema, se nao me falha a memoria (faz um certo tempinho q eu nao faco loadbalance com iproute2), assim ele vai aprender as novas rotas pelo "novo" link.
vale a pena lembrar tambem que existe um patch para corrigir esse problema do iproute2 nao se preocupar com o estado do link. procure por ele. talvez seja melhor do que fazer um script e teste-o, e veja se funciona.
outra solução é monitorar a conexao com o "mon" e fazer um script para na hora q ele tomar a decisão executar o mesmo ajeitando seus links, bom, essa é uma solução mais complexa, entretanto mais robusta do que um simples script, pois conta com logs, alertas de email, etc etc.
Nao to desmerecendo o script, mais dependendo do que voce for fazer o script vai ficar maior e mais complexo, caso voce queira monitrar outro servico, terá que fazer outro script, ja com o mon isso fica um pouco mais facil, já que ele foi feito para monitoração, basta adptar ele ao seu caso, mas como um "workaround" va com o script que eh muito, mas muito mais facil, mas lembre-se que essa solução pode falar, e deixar seu link em estado incosistente, mesmo que pode 3 minutos, ou o tempo de intervalo do seu cron + a execucao do script, se voce se der o luxo de ficar esse tempo todo "offline", sem problemas.
shell script para IPROUTE2
galera.. ja consegui .. valew... uma pessoa se ofereceu para fazer o script para mim.. e como meu negocio é infra e nao shell script... :D eu so tenho a agradecer a todos..
mistymst,
O flush de cache de rotas.. ja esta no script que cria o balanceamento.. e tb vai estar no script de monitoracao dos links.. e sera executado sempre que houver mudanca no estado de qualquer rota.. mais obrigado por avisar mesmo assim...