Script expect pour récupérer la configuration

Fermé
Yenku - 19 janv. 2012 à 15:46
 Yenku - 20 janv. 2012 à 16:23
Bonjour, Afin de récupérer la configuration de mes switch j'ai créé un script "expect" qui effectue une connexion telnet sur mon switch et envoie la configuration (running-config) vers le serveur tftp, ceci fonctionne le seul souci que j'ai rencontré c'est que je veux récupérer dans la variable 'ip' les adresses ip de mes switch qui ce trouve dans le fichier txt 'ip_switch.txt', malheureusement je ne parvient pas à le faire.

Voici le script:

#! /usr/bin/expect

spawn telnet $ip
expect "Username:"
send "user\r"
expect "Password:"
send "motdepasse\r"
expect "#"
send "copy running-config tftp\r"
expect "Address or name of remote host"
send "xxx.xxx.xxx.xxx\r"
expect "Destination filename"
send "$ip.txt\r"
expect "#"
send "exit\r"
expect "closed"

J'espère que quelqu'un pourras m'aider, merci par avance.
A voir également:

6 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 425
19 janv. 2012 à 16:03
Salut,

Il faut passer tON IP en argument au script et déclarer ensuite ta variable dans expect de cette façon :

#!/usr/bin/expect -f

set IP [lindex $argv 0] 

spawn telnet $IP
expect "Username:" 
[...]

;-))
0
Salut zipe31,

Merci pour ta réponse, étant novice en expect je ne comprend pas en quoi le fait de passer IP en argument me permet de récupérer mes adresses ip contenue dans mon fichier txt afin d'utiliser une boucle (un peut comme en shell avec le "for ip in $('cat /cisco/ip_switch.txt')") pour que mes lignes expect s'exécutent pour toutes mes adresses ip contenue dans le fichier texte.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 425
19 janv. 2012 à 16:23
Faire une boucle directement dans "expect" tu ne pourras pas. C'est à partir du shell qu'il te faudra faire une boucle pour lire chaque ligne de ton fichier, et c'est dans cette boucle que tu appelleras ton script "expect" avec l'IP en argument...
0
D'accord merci de ta réponse je vais essayer je te tien au courant.
0
j'ai un souci comment je fait pour appeler mon script "expect" dans mon script "shell"?
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 425
19 janv. 2012 à 16:39
Ben par son nom ;-\
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Salut je te remercie pour toutes tes informations, actuellement je n'ai pas le temps de continuer ce travail. Cependant je te tien au courant de mes évolutions.
0
j'ai réussi à effectuer mes scripts je te remercie pour tes réponses et ton temps.
0