Esse script tem por finalidade a redundância de dois links de
internet, você usa o link1 com gateway padrão, se o link1 cair o link2
assume, ficando como gateway padrão, assim que o link1 voltar o script
faz com que ele assuma novamente e tenha por padrão o link1.
Deve-se criar uma pasta no diretório /var/log ou onde você achar melhor para salvar os logs que serão criados. No meu caso:
# mkdir /var/log/reduncancia
Em seguida criar o arquivo de log:
# touch /var/log/redundancia/redundancia.log
Espero que ajude... Testado com sucesso no CentOS 5.9.
Abraços.
Deve-se criar uma pasta no diretório /var/log ou onde você achar melhor para salvar os logs que serão criados. No meu caso:
# mkdir /var/log/reduncancia
Em seguida criar o arquivo de log:
# touch /var/log/redundancia/redundancia.log
Espero que ajude... Testado com sucesso no CentOS 5.9.
Abraços.
[ Download: 5826.redundancia.sh ]
#!/bin/bash # Observacoes # # Esse script prove de forma simples e eficiente uma redundancia entre # dois links de internet (sem load balance), sendo um link principal e o outro de backup. # # Crie o arquivo com o nome que quiser, no nosso caso como redundancia.sh # Torne-o um executavel com o comando chmod +x redundancia.sh # Adicione a linha abaixo no crontab crontab -e # * * * * * /etc/script/redundancia.sh # Gateway ativo # Esse comando vefirica qual o link esta como padrao, se o link tiver como padrao o GW1 # ele vai pingar no ip externo e se responde e porque o link esta normal e nao faz mais nada export LC_ALL=C export PATH= /bin : /usr/bin : /sbin : /usr/sbin GWUP=`ip route show | grep ^default | cut -d " " -f 3` # Gateway Principal GW1=192.168.25.1; export GW1 # Substitua pelo gateway do seu link principal # Gateway Slave GW2=192.168.24.1; export GW2 # Substitua pelo gateway do seu link backup # Etapa 1 = Verifica se o gateway e o principal, ser for ele vai pra etapa 2 se nao for ele vai pra etapa 2.1 if [ $GWUP == $GW1 ]; then # Etapa 2 = Informa com log que a rota principal e o gateway 1 e vai para a etapa 6 echo "`date` - Rota default e a Principal! Link 35 megas Gateway 192.168.25.1" >> /var/log/redundancia/redundancia .log else # Etapa 2.1 = Informa com log que a rota principal e o gateway 2 e vai para a etapa 3 echo "`date` - Rota default e a Slave! Link 10 megas Gateway 192.168.24.1" >> /var/log/redundancia/redundancia .log # Etapa 3 = Verifica a disponibilidade do link com gateway 1 echo "`date` - Verificando a disponibilidade do link principal de 35 megas..." >> /var/log/redundancia/redundancia .log route add -net 0.0.0.0 gw $GW1 ping -I eth1 200.160.2.3 -c 5 -A > /dev/null if [ $? - eq 0 ]; then # Epata 4 = Se o gateway principal voltou ele exclui a rota do gateway 2 para manter o gatewy 1 ativo echo "`date` - Link pricipal voltou!" >> /var/log/redundancia/redundancia .log route del -net 0.0.0.0 gw $GW2 exit 0 else # Etapa 5 = Agora se o gatewy principal nao voltou, ele deleta a rota o gatewy 1 e mantem a rota do gateway 2 echo "`date` - Link principal ainda nao voltou..." >> /var/log/redundancia/redundancia .log echo "`date` - Link de backup sera mantido." >> /var/log/redundancia/redundancia .log route del -net 0.0.0.0 gw $GW1 exit 0 fi fi # Etapa 6 = Testando se o link principal com gateway 1 esta normal, se tiver ele vai pra etapa 7 echo "`date` - Testando Link Principal..." >> /var/log/redundancia/redundancia .log ping -I eth1 200.160.2.3 -c 5 -A > /dev/null if [ $? - eq 0 ]; then # Etapa 7 = Diz que o link principal com gateway 1 esta normal e finaliza echo "`date` - Link Principal UP!" >> /var/log/redundancia/redundancia .log else # Etapa 8 = Diz que o link principal nao esta funcionado e deleta a rota do gateway um e adiciona rota ao gateway 2 echo "`date` - Link Principal DOWN..." >> /var/log/redundancia/redundancia .log echo "`date` - Subindo Link de backup..." >> /var/log/redundancia/redundancia .log route del -net 0.0.0.0 gw $GW1 ip route add default via $GW2 fi |
Muito útil esse script. Como posso fazer isso para uma estação que roda winidows?
ResponderExcluirEle é facil de adaptar pra 3 Links ?
ResponderExcluir