Bonjour,
J'essaye de créer un programme sous linux qui va se connecter à un switch et récupérer des infos de manière automatique grace à expect, send et spawn.
Mais il y a certainement quelques concepts qui m'échappent car à la fin du programme, je ne retrouve pas la main.
Voici le programme :
#!/usr/bin/expect -f
set timeout -1
set telnet_ip [lindex $argv 0]
set login $env(login)
set password $env(password)
set send_slow {1 .1}
spawn $env(SHELL)
match_max 100000
sleep .1
send "telnet $telnet_ip\r"
sleep 1
send "$login\r"
expect "Please Enter Password: "
sleep .1
send "$password\r"
expect "*# "
sleep .1
send "term length 1000\r"
expect "*# "
sleep .1
send "show int config\r"
expect "*# "
sleep .1
send "show int brief\r"
expect "*# "
sleep .1
send "show system-information\r"
expect "*# "
sleep .1
send "show run\r"
expect "*# "
sleep .1
send "logo\r"
expect "Do you want to log out"
sleep .1
send "y\r"
sleep .1
send "exit"
expect eof
exit
Et voila la trace (juste la fin) :
Connection closed by foreign host.
prompt$
je suis coincé :(
je ne peux sortir qu'avec un control-C
exemple :
^Cprompt$
prompt$
prompt$ et voila
Mais comme vous pouvez le voir, je suis coincé à la fin du script. je dois faire control-C pour quitter le processus et revenir sur mon bash.
Avez-vous déjà eu ce problème ? D'où cela peut-il bien venir ?
Merci d'avance.