Commande pour exécuter une ligne de commande

Résolu
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

2 réponses

  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
    1. Modérateur
      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