Verificando roteamento em vários servidores Linux
Publicado por Sergei Martao (última atualização em 14/12/2015)
[ Hits: 2.709 ]
Homepage: -
Download 6329.verifica_rotas.sh
Script bem simples para conectar em vários hosts automaticamente usando SSH e pesquisar por rotas tanto no arquivo interfaces quanto as que estão em execução (route -n).
#!/bin/bash
#
# Script para verificar o roteamento em varios servidores Linux automaticamente.
# O ideal é que no servidor que executar o script possua chave publica compartilhada com os demais servidores
# assim não pedira senha toda na conexão ssh.
#
# Sergei A. Martão 06/12/15
# Contador do vetor, usado para determinar o numero de servidores dentro do vetor.
let s=$s+1
# Variavel para adicionar o hostname do servidor, usado para para mostrar na tela.
# Exemplo, SERVER[$s]="FWACME"
SERVER[$s]=""
# IP do servidor usado para conectar via ssh pesquisar as rotas no arquivo interface.
#IP[$s]="192.168.0.1"
IP[$s]=""
# Para adicionar vários servidores usar a seguinte sintaxe.
#let s=$s+1
#SERVER[$s]="SERVER1"
#IP[$s]="192.168.0.254"
#let s=$s+1
#SERVER[$s]="SERVER2"
#IP[$s]="192.168.1.254"
# Porta ssh para conectar nos servidores.
# Exemplo PORTA="22"
PORTA=""
# Caminho onde o arquivo de log sera salvo.
# Exemplo, CAMINHO="/tmp/verificarota/"
CAMINHO=""
# Nome do arquivo de log
# Exemplo, ARQ="rotas"
ARQ=""
#Para ignorar rotas comentadas, adicione algum conteudo na variavel a baixo.
# caso não precise deixe vazio
# Exemplo, coment=1 ou coment=
coment=
# Verificando se a string coment esta vazia.
if [ -z $coment ];then rcoment="stringvazia"; else rcoment="^#";fi
# Criando o diretorio para armazenar as rotas e imprimir na tela.
mkdir -p $CAMINHO
# Entrada para variavel A1.
read -p "# Entre com uma rede, IP ou comentario para pesquisa no arquivo interfaces: " A1
# Pesquisando nos hosts.
for((i=1; i<=${#IP[@]}; i++));
do
echo "" > $CAMINHO/$ARQ_${SERVER[$i]}
# Pesquisando as rotas ativas no servidor.
echo "route -n | grep $A1" | ssh ${IP[$i]} -p $PORTA >> $CAMINHO/$ARQ_${SERVER[$i]} 2>/dev/null
# Pesquisando as rotas no arquivo interfaces.
echo "grep -i $A1 /etc/network/interfaces | grep -i route | grep -iv $rcoment" | ssh ${IP[$i]} -p $PORTA >> $CAMINHO/$ARQ_${SERVER[$i]} 2>/dev/null
done
# Limpando a tela antes de imprimir.
clear
echo "#------------------ INICIO -------------------#"
echo ""
# Mostrando as rotas
for((i=1; i<=${#IP[@]}; i++));
do
echo "#----- ${SERVER[$i]} -----#" >> $CAMINHO/$ARQ
echo ""
# Mostrando apenas as rotas desejadas.
grep -i "$A1" $CAMINHO/$ARQ_${SERVER[$i]} --color
echo ""
done
echo ""
echo "#-------------------- FIM --------------------#"
echo ""
Abrir arquivos em nova aba no Firefox
Script de Backup de DVD com growisofs
Script para verificar o espaço atual do HD
Convertendo vídeos flv para avi
Nenhum comentário foi encontrado.
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
converter algoritmo C++ em C? (1)
Programa fora de escala na tela do pc (22)
Problemas com Driver NVIDIA (1)
Fedora KDE plasma 42 X Módulo de segurança BB (Warsaw-2) (1)









