«

»

out 24 2009

Script para automatizar comandos em switches Cisco…

Imagine a situação em que você precisa aplicar uma série de comandos em diversos switches…. Imaginou…

Então ai vai um script que pode lhe ajudar no processo.

 	 	

#!/usr/bin/expect

# Copyleft (c) 2009 Marcos Pitanga <[email protected]>

# arg1 = IP

set ip [lindex $argv 0]

set timeout 60

spawn telnet $ip

 

expect "Password:"

send "cisco1234\r"

 

expect ">"

send "enable\r"

 

expect "Password:"

send "cisco1234\r"

 

expect "#"

send "configure terminal\r"

 

expect "(config)"

send "no ip dhcp snooping\r"

 

expect "(config)"

send "no ip igmp snooping\r"

 

expect "(config)"

send "exit\r"

 

expect "#"

send "show running-config\r"

 

expect "#"

send "copy running-config startup-config\r"

expect "startup-config"

send "\r"

 

expect "#"

send "exit\r"

Divirtam-se…



Comente usando o Facebook!
0
0

17 comentários

Pular para o formulário de comentário

  1. Daniel Valente

    Ah!!! Velho expect!!!
    Esses dias apos muito ler sobre o expect e sua sintaxe “descobri” o autoexpect. Muito muito util, valeu!

    0

    0
  2. MOSCA

    E aonde/como eu aplico isso?

    0

    0
  3. Marcos Pitanga

    De uma máquina que tenha Linux, que tenha o expect instalado, execute como root chmod +x atualiza.expect e depois execute:

    ./atualiza.expect

    []’s

    0

    0

  4. Jose Antonio

    Legal dele que também podemos criar um script de email para quando o Backup não funcionar 🙂

    0

    0
  5. Moonspell

    Marcos, acho q tá faltando alguma coisa no seu script… Editei ele aqui de acordo com minhas necessidades (uso TACACS) e só recebo timeout do equipament, seja ele switch ou router.

    Já vi essa msg qdo configurei o RANCID, mas, alterando um parâmetro no software, resolvi o problema.

    abraço

    0

    0
  6. rpedrosa1979

    Interessante, mas ainda nao sei quando irei utilizar isso nos meus clientes!!!

    0

    0
  7. Alexandre Canalle

    Boa!

    Precisava de alguma ferramenta/script que automatizasse a verificação de portas de switch que não estejam sendo utilizadas, de modo a possibilitar um inventário… Alguém sugere algum software/script?

    0

    0
  8. Cledir Justo

    só fazer umas modificações no script rox, utilizando sh ip int b e sh int para ver se as interfaces estão down.

    0

    0
  9. Marcos Pitanga

    Nao apareceu o \r no final de cada linha

    0

    0
  10. Marcos Pitanga

    Senhores, creio que pela formatação do HTML e corta o \

    Então, antes de qualquer r no final use \r.

    []’s

    0

    0
  11. fabricio.oliveira

    Senhores,

    Analisando o script postado por Marcos Pitanga, fiz umas adaptações simples para quem utiliza Linux como SYSLOG.

    Att,

    Fabricio Oliveira
    [email protected]

    USANDO O COMANDO TELNET ou SSH

    #!/usr/bin/expect -f

    set data [exec date +%d%m%y]

    set timeout 3

    spawn -noecho telnet IP_do_ATIVO OU spawn -noecho ssh -c DES(CHAVE CRIPTOGRAFIA) -l USUARIO IP_DO_ATIVO

    expect “Password:”
    send “SENHA_DO_ATIVO\r”

    expect “>”
    send “ena\r”

    expect “Password:”
    send “SENHA_DO_ENABLE\r”

    expect “#”
    send “copy running-config tftp:IP_SERVIDOR_SYSLOG\r”

    send “IP_SERVIDOR_SYSLOG\r”
    send “NOME_DO_ATIVO_$data.cfg”
    send “\r”
    expect “#”
    send “exit\r”

    ###################################

    0

    0
  12. Ravy Dourado

    roxsnd, fiz um script que faz uma verificaçao automatizada em todos os switches e procura por portas “notconnected”, joga os resultados separadamente pastas com a data e arquivos nomeados com o ip do switch. Caso se interesse, eh so falar.

    0

    0
  13. gudines

    Post Interessante! Valeu Marcos Pitanga!

    0

    0
  14. miovieira

    Ravy Dourado, poderia me enviar esse script para ver como está funcionando??

    Abraço.

    0

    0
  15. edu_web

    O script é simple.. mas se entendi certo precisamos digitar o IP de cada host para efetuar as configurações.
    Como seria o script para que ele pegue o IP do Switch ou Router automaticamente em um arquivo com as entradas abaixo por exemplo?

    200.55.55.20
    192.43.2.19
    78.45.97.253
    10.5.20.203
    189.100.241.110

    Coloquei 4 entradas como exemplo.. mas o script precisará varrer um arquivo texto com uns 300 IPs e configurar todos com as mesmas infos.

    Alguém pode auxiliar nisso?

    0

    0
  16. lyon

    edu, vc pode fazer da seguinte maneira.

    for i in `cat nome_do_arquivos`
    do
    echo “$i \n”
    done

    Entre o do… done vc coloca os comandos que serão executados.
    Neste exemplo ele ira ler o arquivo e mostrar na tela o conteudo de cada linha

    0

    0
  17. willian.amaral

    Pessoal, boa tarde.

    E quando ele não encontra o expect como na saída:
    /usr/bin/expect: bad interpreter: No such file or directory

    Obrigado

    0

    0

Deixe uma resposta