Commande pour exécuter une ligne de commande

Résolu/Fermé
Orlus - 25 mars 2010 à 15:14
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 25 mars 2010 à 16:44
Bonjour,

Après avoir parcouru le net à la recherche de ma réponse, je poste ici pour vous poser la question :

J'essaye d'écrire un script qui permet de récupérer automatiquement les fichiers config des routeurs sur mon réseau. Je voudrais que celui-ci exécute automatiquement ce que je fais à la main.

Voilà l'algorithme en français pur & dur :

Connexion en telnet à 192.168.1.1

Ecrire "login"
Patienter
Ecrire "password"
Patienter
Ecrire "en"
Patienter
Ecrire "enable"
Patienter
Ecrire "copy running-config tftp"
Patienter
Ecrire "192.168.1.2"
Patienter
Ecrire "test"
Patienter
Ecrire "exit"

En bash, ça donnerait :

telnet 192.168.1.1
eval "login"
sleep 1
eval "password"
sleep 1
eval"en"
sleep 1
eval "enable"
sleep 1
eval "copy running-config tftp"
sleep 1
eval "192.168.1.2"
sleep 1
eval "test"
sleep 1
eval "exit"
exit

J'ai marqué "eval" par commande par défaut, évidement ça ne marche pas. Connaissez-vous une commande qui permet d'automatiser cette tâche ? J'ai entendu parler du langage expect mais je souhaiterais savoir s'il est possible d'effectuer en script en Bash dans un premier temps.

Merci
A voir également:

2 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
25 mars 2010 à 15:23
Salut,

Expect est tout à fait dédié à ce que tu veux et il s'intègre dans un script bash.

Voici un exemple (c'est pour ssh mais ça le fait très bien avec telnet) :
https://forums.commentcamarche.net/forum/affich-2340762-ssh-ecrire-un-script-pour-connexion-ssh

Liens vers docs : https://forums.commentcamarche.net/forum/affich-2340762-ssh-ecrire-un-script-pour-connexion-ssh#5

1
Salut,

Merci pour la confirmation sauf que pour l'instant, je n'arrive pas à installer Expect ni sur ma VM Ubuntu 8.04.3 ni sous mon Debian. Mais c'est un autre problème. Merci pour le lien !
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
Modifié par jipicy le 25/03/2010 à 16:58
Normalement il est dans les dépôts, un simple apt-get (ou aptitude) devrait suffire ;-\

Edit : Sous une Ubuntu 8.10 :

~$ aptitude search expect
p   empty-expect                                          - Run processes and applications under pseudo-terminal
p   expect                                                - A program that can automate interactive applications
p   expect-dev                                            - A program that can automate interactive applications (developmen
p   expect-tcl8.3                                         - A program that can automate interactive applications
p   expect-tcl8.3-dev                                     - A program that can automate interactive applications (developmen
p   expectk                                               - A program that can automate interactive applications (Tk hooks)
p   expectk-tk8.3                                         - A program that can automate interactive applications (Tk hooks)
p   libexpect-perl                                        - Expect.pm - Perl Expect interface
p   libexpect-simple-perl                                 - wrapper around the Expect module
p   libnet-scp-expect-perl                                - Wrapper for scp to send passwords via Expect
p   libtest-expect-perl                                   - Automated driving and testing of terminal-based programs
i A python-pexpect                                        - Python module for automating interactive applications
v   python2.4-pexpect                                     -
v   python2.5-pexpect                                     -
0