De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
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.