Commande Expect avec variables
Résolu
Maillon
Messages postés
156
Date d'inscription
Statut
Membre
Dernière intervention
-
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Voilà je commence un script qui copie des fichiers sur une machines distante et pour cela j'utilise la commande expect.
Seulement j'aimerai que mon fichier verif.exp reprenne les variables du fichier depuis lequel il est appelé et les utilisent pour faire le scp.
Voici mon script de départ :
load.sh
#! /bin/sh
LOCATION="vm-test"
USERLDAP="francois"
VERIF="verif-config.sh"
cd /home/francois/deployment
./verif.exp &
if [ $? != 0 ]
then
echo "toto"
exit 0
fi
et dans le fichier verif.exp il y a :
#!/usr/bin/expect -f
spawn scp $VERIF $USERLDAP@$LOCATION:/data/www/
expect "password: $"
send "dingdong\n"
expect "\\$ $"
Seulement quand j'execute ça il me met comme message :
while executing
"spawn scp $VERIF $USERLDAP@$LOCATION:/data/www/"
(file "./verif.exp" line 3)
Pourriez-vous m'indiquez une solution ?
Merci beaucoup
Cordialement,
Voilà je commence un script qui copie des fichiers sur une machines distante et pour cela j'utilise la commande expect.
Seulement j'aimerai que mon fichier verif.exp reprenne les variables du fichier depuis lequel il est appelé et les utilisent pour faire le scp.
Voici mon script de départ :
load.sh
#! /bin/sh
LOCATION="vm-test"
USERLDAP="francois"
VERIF="verif-config.sh"
cd /home/francois/deployment
./verif.exp &
if [ $? != 0 ]
then
echo "toto"
exit 0
fi
et dans le fichier verif.exp il y a :
#!/usr/bin/expect -f
spawn scp $VERIF $USERLDAP@$LOCATION:/data/www/
expect "password: $"
send "dingdong\n"
expect "\\$ $"
Seulement quand j'execute ça il me met comme message :
while executing
"spawn scp $VERIF $USERLDAP@$LOCATION:/data/www/"
(file "./verif.exp" line 3)
Pourriez-vous m'indiquez une solution ?
Merci beaucoup
Cordialement,
A voir également:
- Expect set variable
- Set-top box - Accueil - Box & Connexion Internet
- Variable d'environnement temp - Forum Word
- Set fsb - Télécharger - Optimisation
- Vba range avec variable ✓ - Forum VB / VBA
- Set warranty bit kernel ✓ - Forum Samsung
4 réponses
hello
il faut exporter les variables
LOCATION="vm-test"
USERLDAP="francois"
VERIF="verif-config.sh"
export LOCATION USERLDAP VERIF
il faut exporter les variables
LOCATION="vm-test"
USERLDAP="francois"
VERIF="verif-config.sh"
export LOCATION USERLDAP VERIF
avec $env(variable)
set loc $env(LOCATION)
set loc $env(LOCATION)
Oki dubcek je vois ce que tu veux dire mais je n'ai pas la moindre idée de comment le mettre en place dans les scripts.
Est ce qu'il faut que je mette ça dans le verif.exp :
set loc $env(LOCATION)
set ver $env(VERIF)
set user $env(USERLDAP)
et que dans le load.sh je mette ça :
LOCATION="vm-test"
USERLDAP="francois"
VERIF="verif-config.sh"
$env(USERLDAP)
$env(LOCATION)
$env(VERIF)
Merci de votre aide.
Cordialement,
Est ce qu'il faut que je mette ça dans le verif.exp :
set loc $env(LOCATION)
set ver $env(VERIF)
set user $env(USERLDAP)
et que dans le load.sh je mette ça :
LOCATION="vm-test"
USERLDAP="francois"
VERIF="verif-config.sh"
$env(USERLDAP)
$env(LOCATION)
$env(VERIF)
Merci de votre aide.
Cordialement,
Alors j'ai ajouter dans mon fichier verif.exp ça :
#!/usr/bin/expect -f
---> set force_conservative 1;
---> set VERIF [lindex $argv 0]
---> set USERLDAP [lindex $argv 1]
---> set LOCATION [lindex $argv 2]
spawn scp $VERIF $USERLDAP@$LOCATION:/data/www/
expect "password: $"
send "dingdong\n"
expect "\\$ $"
Et pour lancer le script load.sh je met les paramètres derrières :
root@vm-1:~/deployment# sh load.sh verif-config.sh francois vm-test
( et même si je ne lance que root@vm-1:~/deployment# sh load.sh j'ai le même résultat)
Et là il met met ça comme erreur
root@vm-1:~/deployment# sh load.sh verif-config.sh francois vm-test
root@vm-1:~/deployment# spawn scp @:/data/www/
ssh: : Name or service not known
lost connection
send: spawn id exp6 not open
while executing
"send "dingdong\n""
(file "./verif.exp" line 9)
Si j'ai bien compris ce que tu as mis dans l'autre topic.
En fait au lieu de passer verif-config.sh francois vm-test en paramètre à load.sh il fallait les passer à verif.exp :-)
Par contre j'ai une "erreur" c'est à dire que j'ai ça maintenant :
francois@vm-test:~/deployment$ sh load.sh
spawn scp verif-config.sh francois@vm-test:/data/www/
The authenticity of host 'vm-test (192.168.1.212)' can't be established.
RSA key fingerprint is a6:69:6a:f9:89:5b:84:........etc ....
Are you sure you want to continue connecting (yes/no)? yes
dingdong
Please type 'yes' or 'no':
Et que je mette 'yes' ou 'no' ou rien ça ne fait rien et ne copie pas le fichier.
Aurais-tu une explication ?
Merci
Cordialement,