Script telnet avec expect/send

Résolu
stou05 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -  
stou05 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis en train de créer un script pour aller en telnet sur une station de tête, exécuter une commande et récupérer le résultat de cette commande. Mon petit script fonctionne correctement pour des commande dont le résultat ne dépasse pas une page. En effet, si le résultat de la commande exécutée est plus long qu'une page, mon expect ne marche pas, car la fin de la page n'est plus le shell mais par exemple -- More -- pour afficher la page suivante. Voici le script :

#!/usr/local/bin/expect
spawn telnet xxx.xxx.xxxx.xxx 23
expect "Password: "
send "xxxx\r"
expect "myCMTS>"
send "ena\r"
expect "Password: "
send "xxxxx\r"
expect "myCMTS#"
send "sho cable modem flap\r"
expect "myCMTS#"
send "exit\r"
expect eof


Dans ce script, si la commande sho cable modem flap a un résultat plus petit qu'une page cela fonctionne, car le expect attend la bonne ligne (mon shell). Par contre si le résultat de la commande est plus long qu 'une page, le script ne fonctionne pas car je ne devrais pas attendre mon shell mais le --More-- pour passer à la page suivante...

Quelqu un aurait une idée pour avoir directement le résultat entier de la commande sans passer par les -- More--

Merci,

Salutations
A voir également:

3 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
il faut configurer
terminal length 0 ou set terminal length 0
2
stou05 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour l'info.

Mais le terminal length 0 doit se faire ou ? dans mon script ?

Merci
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
juste avant le send "sho cable modem flap\r"
1
stou05 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
Ah ouais c'est bon ca marche, ja'i juste mis le terminal length avant de lancer la commande.. et ensuite je l'ai remis à sa valeure initiale... Merci beaucoup
0