[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] expect + telnet
From: |
Flavio Junior |
Subject: |
Re: [shell-script] expect + telnet |
Date: |
Tue, 14 Apr 2009 16:25:46 -0300 |
Um exemplo parecido com o teu, pode te ajudar..
Uso pra criar a regra de nat em um roteador da embratel:
Paste: http://rafb.net/p/2bfyaa19.html
ou
wallygator:~ # cat /scripts/nat-rule.expect
#!/usr/bin/expect -f
spawn telnet 192.168.0.1
expect ".*Type ENTER.*"
send "\r"
expect ".*ption:.*"
send "2"
expect "PROSUL>"
send "enable\r"
expect "PROSUL#"
send "show nat-rules\r"
expect "NAT rule SSH" {
send "exit\r"
send "exit\r"
expect ".*ption:.*"
send "e"
expect eof
send_user "$expect_out(buffer)"
exit 0
}
expect "PROSUL#" {
send "configure terminal\r"
expect "(config)#"
send "nat-rule SSH tcp any any eq 2200 change-destination-to
192.168.0.2\r"
expect "(config)#"
send "interface serial 0\r"
expect "(config-if-serial0)#"
send "ip nat SSH in\r"
send "exit\r"
send "exit\r"
send "exit\r"
send "exit\r"
expect ".*ption:.*"
send "e"
expect eof
send_user "$expect_out(buffer)"
exit 0
}
--
Flávio do Carmo Júnior aka waKKu
2009/4/14 Fabiano Caixeta Duarte <address@hidden>:
>
>
> Senhores,
>
> Estou precisando extrair umas informações de um switch. Ele infelizmente não
> retorna estas informações via SNMP (pelo menos que eu saiba). Então resolvi
> fazer um script com expect.
>
> cat get_mactable.exp
>
> #!/usr/bin/expect -f
>
> spawn telnet [lindex $argv 0]
> expect {
> UserName: {
> send sti\r
> expect {
> PassWord: {
> send cnr7pm\r
> expect {
> "#" {
> send "show fdb\r"
> send a
> }
> }
> }
> }
> }
> }
>
> Qual comando devo colocar após o "send a" para que ele jogue na stdin o
> resultado do comando?
>
> Se eu coloco exp_continue após o "send a", ele me retorna o que eu quero. O
> problema é que ele entra em loop, uma vez que ele continua encontrando o
> prompt "#".
>
> Toda ajuda é bem-vinda.
>
> Obrigado!
>
> PS: tudo que acho na net sobre expect + telnet usa o comando interact do
> except. Como eu quero uma solução não-interativa, isto não resolve ;)
>
>
- expect + telnet, Fabiano Caixeta Duarte, 2009/04/14
- Re: [shell-script] expect + telnet,
Flavio Junior <=