Linkswitch (The POG)
Publicado por George Mattos 04/11/2008
[ Hits: 6.426 ]
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
fcp (ftp copy) - copia um ou mais arquivos via FTP
Backup Automatizado (atualizado)
Compilação de módulos para VMware 12.5.7 no Fedora 26
Script para converter arquivos *.rar em *.zip
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
Atualizar Debian Online de uma Versão para outra
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Debian 13 Trixie para Iniciantes
Convertendo pacotes DEB que usam ZSTD (Padrão Novo) para XZ (Padrão Antigo)
Ubuntu com problemas no áudio (3)
Rust é o "C da nossa geração"? (5)
Debian 13 "trixie&... lançado! (44)
Gerenciador de arquivos é finalizado ao abrir pasta específica (2)