você está aqui: Home  → Arquivo de Mensagens

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
  
  < A NAME="note" HREF="#textnote">< SUP>#Path e arquivos necessarios
  set logpath "/backup/cisco"
  set roteadores "/backup/cisco/roteadores.txt"
  < A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>##
  
  < A NAME="note" HREF="#textnote">< SUP>#Password e Enable Password
  set pass "SenhaDoCisco"
  set enapass "SenhaDeEnableDoCisco"
  < A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>##
  
  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
  
  < A NAME="note" HREF="#textnote">< SUP>#Path e arquivos necessarios
  set logpath "/backup/cyclades"
  set roteadores "/backup/cyclades/roteadores.txt"
  < A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>##
  
  < A NAME="note" HREF="#textnote">< SUP>#User e password
  set user "UsuarioDoCyclades"
  set pass "SenhaDoCyclades"
  < A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>##
  
  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

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script