Linkswitch (The POG)
Publicado por George Mattos 04/11/2008
[ Hits: 6.437 ]
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
Criar políticas para o SELinux
Busca de arquivos nas ports FreeBSD
Script para baixar e-mails de sites automaticamente
Script Administração SquidFacil Ubuntu 11.10
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Realizar overclock no Miyoo Mini (plus ou normal)
Otimização de memória para máquinas modestas
Unbuntu não atualiza o firmware [RESOLVIDO] (2)
linux mint reconhece microfone de lapela como fone de ouvido sem micro... (0)
Dúvidas sobre a originalidade de conteúdos online (10)
Erro de interface de Rede no Virt Manager dentro Debian 13 KDE (12)