[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: expect + telnet
From: |
Fabiano Caixeta Duarte |
Subject: |
Re: expect + telnet |
Date: |
Tue, 14 Apr 2009 19:42:02 -0000 |
User-agent: |
eGroups-EW/0.82 |
--- Em address@hidden, Flavio Junior <billpp@...> escreveu
>
> 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
>
> --
>
> Flávio do Carmo Júnior aka waKKu
>
> 2009/4/14 Fabiano Caixeta Duarte <fcd.listas@...>:
> >
> >
> > 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 ;)
> >
> >
>
Ajudou!
O que resolveu foi um "expect eof" após o send. Eu tinha tentado expect *.
Passei perto ;)
Obrigado!