você está aqui: Home  → Arquivo de Mensagens Programação Shell Linux: Inscrições Abertas

Salvando as configurações de roteadores Ciscos e Cyclades

Colaboração: Marcos Helbert de Almeida Fontana

Data de Publicação: 25 de Julho de 2005

É a primeira vez que escrevo aqui e vou tentar ajudar aqueles que dispõe de muitos roteadores cisco e cyclades em sua rede. Neste fim de semana tive um problema com um cyclades que foi reconfigurado e perdeu várias rotas. Montei a seguinte solução para backup de configurações dos retoadores usando a linguagem expect.

Para rotadores cisco é necessário o script seguinte:


#!/usr/bin/expect

#cisco.exp

#####Path e arquivos necessarios
set logpath "/backup/cisco"
set roteadores "/backup/cisco/roteadores.txt"
##############################################################################

#####Password e Enable Password
set pass "SenhaDoCisco"
set enapass "SenhaDeEnableDoCisco"
##############################################################################

set host ""
set data [exec date +%Y%m%d]

set timeout 20

#Cria diretorio (se nao existe)
if {!([file exists $logpath/cisco.$data])} then {
    set MakeDir [exec mkdir $logpath/cisco.$data]}

# telnet para Ciscos -- pega configuracao
set lista [open $roteadores r]
while {[gets $lista host] > 0} {
#Telnet para os Ciscos
    spawn telnet $host
    expect {
          "word:"     {
              send "$pass\r"
              expect ">"
              send "enable\r$enapass\r"
              expect "#"
              send "term len 0\r"

              #Aqui estamos logados no router
              #Vamos agora pegar as configuracoes
              set logfile "$logpath/cisco.$data/$host.$data.conf"
              log_file -noappend $logfile
              expect "#"
              send "wr t\r"
              expect "#"
              log_file
              send "\r"
              expect "#"
              #Agora a saida de  "show tech"
              set logfile "$logpath/cisco.$data/$host.$data.tech"
              log_file -noappend $logfile
              send "show tech\r\r\r"
              expect "#"
              log_file
              close
              wait
              }
         timeout {
              close
              wait
              }}
}
close $lista

Para os cyclades:

#!/usr/bin/expect

#cyclades.exp

#####Path e arquivos necessarios
set logpath "/backup/cyclades"
set roteadores "/backup/cyclades/roteadores.txt"
##############################################################################

#####User e password
set user "UsuarioDoCyclades"
set pass "SenhaDoCyclades"
##############################################################################

set host ""
set data [exec date +%Y%m%d]

set timeout 20

#Cria diretorio (se nao existe)
if {!([file exists $logpath/cyclades.$data])} then {
    set MakeDir [exec mkdir $logpath/cyclades.$data]}

# telnet para Cyclades -- pega configuracao
set hostlist [open $roteadores r]
while {[gets $hostlist host] > 0} {
#Telnet para os Cyclades
    spawn telnet $host
    expect {
          "login :"     {
              send "$user\r"
              expect "Password :"
              send "$pass\r"
              expect "#"
              send "1\r"

              #Aqui estamos logados no router
              #Vamos agora pegar as configuracoes
              set logfile "$logpath/cyclades.$data/$host.$data.conf"
              log_file -noappend $logfile
              expect "#"
              send "l\r"
              expect "#"
              send "\r"
              #Cyclades tem a saida pagina
              expect {
                   "More" { send -- " ";exp_continue }
                   "#" {}
              }
              log_file
              close
              wait
              }
         timeout {
              close
              wait
              }}
}
close $hostlist

Isso deve resolver praticamente os problemas com backup dos routers. Pode-se ainda criar um servidor de tftp em alguma máquina e colocar nestes scripts uma rotina que grave nestes servidores um backup prontinho para ser restaurado.



Veja a relação completa dos artigos de Marcos Helbert de Almeida Fontana