Linkswitch (The POG)
Publicado por George Mattos 04/11/2008
[ Hits: 6.323 ]
Esse script provê de forma simples e eficiente uma redundância entre dois links de internet (sem load balance), sendo um link principal e o outro de backup.
Na verdade isso é uma POG testada aqui na empresa que eu trabalho, e funciona bem!
#!/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. # # Esse script depende do programa iproute2 # # Adicione a linha abaixo em /etc/init.d/networking: # /etc/linkswitch.sh # # Adicione a linha abaixo em /etc/crontab e reinicie o cron: # * * * * * root sh /etc/linkswitch.sh 21 >> /var/log/linkswitch.log # /etc/init.d/cron restart # # Edite o arquivo /etc/iproute2/rt_tables e adicione duas tabelas # 20 provedor1 # 30 provedor2 # # Depois configure uma rota padrao em cada uma delas e crie um arquivo de incializacao para # evitar que sejam apagadas caso ocorra um reboot no sistema, uma boa ideia seria coloca-las # em /etc/init.d/networking # ip route add default via <gateway_do_provedor1> table provedor1 # ip route add default via <gateway_do_provedor2> table provedor2 # # Escrito por George Matos, Fortaleza, 21 de Outubro de 2008 # Email do administrador MAILADMIN=administrador@suaempresa.com.br; export MAILADMIN # Gateway ativo GWUP=`ip route show | grep ^default | cut -d " " -f 3` # Gateway master GW1=1.2.3.4; export GW1 # Substitua pelo gateway do seu link principal # Gateway slave GW2=4.3.2.1; export GW2 # Substitua pelo gateway do seu link backup if [ $GWUP == $GW1 ]; then echo "$HOSTNAME: `date` - Rota default: master" else echo "$HOSTNAME: `date` - Rota default: slave" echo "$HOSTNAME: `date` - Verificando disponibilidade do link master..." route add -net 0.0.0.0 gw $GW1 metric 10 ping -I eth1 200.160.2.3 -c 5 -A > /dev/null if [ $? -eq 0 ]; then echo -e "$HOSTNAME: `date` - \e[32;1mLink master UP\e[m" route del -net 0.0.0.0 gw $GW2 metric 1 echo "O link principal esta se conectando com a internet!" | mail -s "Link principal voltou!" $MAILADMIN exit 0 else echo "$HOSTNAME: `date` - Link master off-line" echo "$HOSTNAME: `date` - Link slave on-line" route del -net 0.0.0.0 gw $GW1 metric 10 if [ -e /tmp/linkswitch.tmp ]; then rm /tmp/linkswitch.tmp exit 0 fi exit 0 fi fi echo "$HOSTNAME: `date` - Testando link master..." ping -I eth1 200.160.2.3 -c 5 -A > /dev/null if [ $? -eq 0 ]; then echo "$HOSTNAME: `date` - Link master on-line" else echo -e "$HOSTNAME: `date` - \e[31;1mLink master DOWN\e[m" echo "$HOSTNAME: `date` - Subindo link slave..." ip route del default ip route add default via $GW2 metric 1 >/tmp/linkswitch.tmp echo "Link slave on-line, isso pode ter ocorrido pela falha temporaria do link principal. Entre em contato com o seu provedor" | mail -s "AVISO! Seu link principal pode estar off-line" $MAILADMIN fi
Angelinux Scripts - Teste de desempenho da sua maquina!
ZVideo1.1 - Conversor de formatos de vídeo para divX
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Criar entrada no GRUB para uma ISO Linux (7)
Open Suse não abre wi-fi automaticamente (3)
Ruído no Microfone (ALC287 - AMD Ryzen 5 7535HS) no Debian 12.9 (15)