Commande pour exécuter une ligne de commande
Résolu
Orlus
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
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
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:
- Commande pour exécuter une ligne de commande
- Invite de commande - Guide
- Commande terminal mac - Guide
- Diskpart commande - Guide
- Partage de photos en ligne - Guide
- Commande scannow - Guide
2 réponses
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
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
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 !
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 !
Normalement il est dans les dépôts, un simple apt-get (ou aptitude) devrait suffire ;-\
Edit : Sous une Ubuntu 8.10 :
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 -