Bonjour à tous,
Voila j'ai un script qui permet de lancer un scp sur un équipement réseau afin de récupérer la conf de celui-ci.
Le problème est que je souhaite utiliser ce script pour lancer la sauvegarde sur plusieurs équipements sans pour autant faire 1 script = 1 équipement.
3 semaines que je suis sous linux me bloque sur mon avancement et c'est rageant.
Voici mon script et je vous remercie de l'aide que vous m'apporterez ::
## 1er script ## Connexion
#!/bin/sh -f
echo password du user:
read p1
echo OK
./script.exp $p1 switch1-`date '+%Y-%m-%d-%H-%M'`.conf "switch1@switch1.toto.net:/cfg/startup-config"
echo FIN
exit 0
## 2eme script ## Lancement de la copie
#!/usr/bin/expect -f
set force_conservative 0 ;# set to 1 to force conservative mode even if
;# script wasn't run conservatively originally
if {$force_conservative} {
set send_slow {1 .1}
proc send {ignore arg} {
sleep .1
exp_send -s -- $arg
}
}
set fic [lindex $argv 1]
set dir [lindex $argv 2]
spawn scp $dir $fic
set pp [lindex $argv 0]
send -- "PROCEDURE EN COURS...\r"
expect -exact "\rswitch1@switch1.toto.net's password: "
send -- "$pp\r"
expect eof
J'ai essayé en rajoutant dans le script 1 la ligne suivante avant echo FIN:
et de rajouter dans le script 2 avant send -- "$pp\r" :./script.exp $p1 switch2-`date '+%Y-%m-%d-%H-%M'`.conf "switch2@switch2.toto.net:/cfg/startup-config"
Mais j'ai le message suivant :expect -exact "\rswitch2@switch2.toto.net's password: "
exec request failed on channel 0
J'ai essayé plusieurs autres solutions du même style mais toujours la même erreur.
Je vous remercie de votre aide.
Partager