[CentOS-pt-br] RES: Ajuda em Script processador de Tabela de Roteamento - Servidor CentOS

Toledo, Luis Carlos lscrlstld em gmail.com
Quinta Outubro 29 16:09:26 UTC 2009


 
route -n |tr -d '[:alpha:]'|awk '{print $1 " " $2}'|sort|uniq

> 
> alguns comandos que poderao te ajudar
> 
> uniq -> nao mostra valores repetidos
> sort -> ordena os numeros
> 
> 
> Newton Teixeira do Nascimento Júnior wrote:
> >
> > Olá comunidade, preciso de ajuda nesse script que vou ter q 
> rodar em 
> > um servidor CentOS.
> >
> >  
> >
> > Fiz um script que processa uma tabela de roteamento de um servidor 
> > 
> <http://www.vivaolinux.com.br/topico/Shell-Script/Ajuda-em-Scr
> ipt-processador-de-Tabela-de-Roteamento>.
> >
> >
> > A lista é bem maior, mostrei esse pedaço pra dar uma idéia. Eis uma 
> > tabela de exemplo:
> >
> > user em servidor:~/user > route -n
> > Tabela de Roteamento IP do Kernel
> > Destino Roteador MßscaraGen. Opþ§es MÚtrica Ref Uso Iface
> > 10.114.32.154 192.164.34.140 255.255.255.255 UGH 6 0 0 eth0
> > 10.114.32.153 192.164.34.140 255.255.255.255 UGH 6 0 0 eth0
> > 152.13.49.21 192.164.34.140 255.255.255.255 UGH 2 0 0 eth0
> > 10.114.32.26 192.164.34.140 255.255.255.255 UGH 6 0 0 eth0
> > 152.13.174.121 192.164.34.110 255.255.255.255 UGH 2 0 0 eth0
> > 10.114.32.25 192.164.34.140 255.255.255.255 UGH 6 0 0 eth0
> > 152.13.49.25 192.164.34.110 255.255.255.255 UGH 2 0 0 eth0
> > 152.13.102.5 192.164.34.110 255.255.255.255 UGH 3 0 0 eth0
> > 152.13.174.4 192.164.34.110 255.255.255.252 UG 6 0 0 eth0 
> 152.13.104.0 
> > 192.164.34.110 255.255.255.252 UG 6 0 0 eth0
> > 152.13.53.4 192.164.34.140 255.255.255.252 UG 2 0 0 eth0 
> 152.13.49.20 
> > 192.164.34.140 255.255.255.252 UG 2 0 0 eth0
> > 152.13.49.24 192.164.34.110 255.255.255.252 UG 2 0 0 eth0
> > 152.13.103.4 192.164.34.110 255.255.255.252 UG 4 0 0 eth0 
> 152.13.103.0 
> > 192.164.34.110 255.255.255.252 UG 5 0 0 eth0
> > 152.13.41.24 192.164.34.110 255.255.255.252 UG 5 0 0 eth0 
> 152.13.41.0 
> > 192.164.34.110 255.255.255.252 UG 6 0 0 eth0
> > 152.13.95.24 192.164.34.110 255.255.255.252 UG 5 0 0 eth0 
> 152.13.95.20 
> > 192.164.34.110 255.255.255.252 UG 4 0 0 eth0 172.19.174.0 
> > 192.164.34.110 255.255.255.0 UG 4 0 0 eth0 192.168.49.0 
> 192.164.34.140 
> > 255.255.255.0 UG 3 0 0 eth0 10.114.32.0 192.164.34.140 
> 255.255.255.0 
> > UG 6 0 0 eth0 172.19.103.0 192.164.34.110 255.255.255.0 UG 
> 5 0 0 eth0 
> > 10.129.1.0 192.164.34.140 255.255.255.0 UG 5 0 0 eth0 172.20.104.0 
> > 192.164.34.110 255.255.255.0 UG 7 0 0 eth0 192.164.34.0 0.0.0.0 
> > 255.255.255.0 U 0 0 0 eth0 192.164.43.0 0.0.0.0 
> 255.255.255.0 U 0 0 0 
> > eth0 12.89.0.0 0.0.0.0 255.255.252.0 U 0 0 0 eth1 
> 169.254.0.0 0.0.0.0 
> > 255.255.0.0 U 0 0 0 eth1 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 
> > 0.0.0.0 12.89.0.1 0.0.0.0 UG 0 0 0 eth1 0.0.0.0 
> 192.164.34.180 0.0.0.0 
> > UG 1 0 0 eth0 user em servidor:~/user >
> >
> > Fiz um script que lê essa tabela e gera 02 arquivos 
> > 
> <http://www.vivaolinux.com.br/topico/Shell-Script/Ajuda-em-Script-proc
> > essador-de-Tabela-de-Roteamento> com a lista de IPs destino 
> e IPs dos 
> > roteadores.
> > Eis o script:
> >
> > #!/bin/bash
> >
> > route -n > tabela-roteamento.txt
> >
> > touch lista-ips-destino.txt
> > touch lista-ips-roteadores.txt
> >
> > echo "" > lista-ips-destino.txt
> > echo "" >lista-ips-roteadores.txt
> >
> > cat tabela-roteamento.txt | while read linha; do
> >
> > ipdestino=`echo $linha | awk {'print $1'}` iproteador=`echo 
> $linha | 
> > awk {'print $2'}` mascara=`echo $linha | awk {'print $3'}`
> >
> > echo "$ipdestino" >> lista-ips-destino.txt echo "$iproteador" >> 
> > lista-ips-roteadores.txt
> >
> > done
> >
> > Preciso melhorar esse script em alguns aspectos:
> >
> > 1) Preciso ignorar as duas primeiras linhas; só quero IPs e 
> mais nada. 
> > Como faz isso em shell?
> >
> > 2) Depois que o arquivo é formado, gostaria de classificar 
> o arquivo 
> > pelos IPs, tipo menores primeiros e maiores no fim do arquivo. Como 
> > fazer ?
> >
> > 3) Preciso criar um arquivo de IPs destino no formato IP/numero de 
> > bits da mascara.
> >
> > Isso, porque vou ter que utilizar esse formato no comando nmap pra 
> > testar se essas máquinas estão ativas na rede.
> > Exemplo: 192.168.45.0/24 ou 192.168.44.11/32.
> >
> > Para isso precisaria converter a mascara em numero de bits, tipo 
> > 255.255.255.0 -> 24, 255.255.255.255 -> 32, etc. Como posso fazer?
> >
> > 4) Pela tabela acima dá pra vê que existem apenas 04 
> roteadores. Como 
> > posso obter uma lista de roteadores com IPs não repetidos?
> >
> > 1 - 192.164.34.110
> > 2 - 192.164.34.140
> > 3 - 20.89.0.1
> > 4 - 192.164.34.180
> >
> > 5) Como ignorar os IPs "0.0.0.0" ?
> >
> > Agradeço a atenção de todos e estou no aguardo on-line. Att.
> >
> >  
> >
> > *Newton Teixeira do Nascimento Junior
> > Analista de Sistemas - CMAO
> >
> > *
> >
> >  
> >
> >
> >
> > Aviso:
> > "O emitente desta mensagem é responsável por seu conteúdo e 
> > endereçamento. Cabe ao destinatário cuidar quanto ao tratamento 
> > adequado. Sem a devida autorização, a divulgação, a reprodução, a 
> > distribuição ou qualquer outra ação em desconformidade com 
> as normas 
> > internas da ELETRONORTE S/A são proibidas e passíveis de sanção 
> > disciplinar, cível e criminal. Esta mensagem pode ser monitorada".
> >
> >
> >
> > 
> ----------------------------------------------------------------------
> > --
> >
> > _______________________________________________
> > CentOS-pt-br mailing list
> > CentOS-pt-br em centos.org
> > http://lists.centos.org/mailman/listinfo/centos-pt-br
> >   
> 
> 
> --
> Sds.
> 
> Alexandre Jeronimo Correa
> 
> Onda Internet
> www.onda.net.br
> 
> IPV6 Ready !
> www.ipv6.onda.net.br
> 
> _______________________________________________
> CentOS-pt-br mailing list
> CentOS-pt-br em centos.org
> http://lists.centos.org/mailman/listinfo/centos-pt-br



Mais detalhes sobre a lista de discussão CentOS-pt-br