expect : invalid command name "sudo"

Le
unbewusst.sein
je dois lancer un script par sudo aussi je le lance par expect pour
éviter d'entrer le pass et là j'ai le message :
iBook:~/Tests yt$ ./landp.exp
invalid command name "sudo"
while executing
"sudo /Users/yt/Tests/landp.zsh"
(file "./landp.exp" line 3)

landp.exp :
#!/usr/bin/expect -f

sudo /Users/yt/Tests/landp.zsh
expect "Password:"
send "monpassword"
expect "task ended."
send_user "Synchronisation of '/Users/yt/Sites/landp_new'"
send_user " to '/Users/yt/Sites/landp_public' ended."


landp.zsh :
#!/bin/zsh

org=/Users/yt/Sites/landp_new
bup=/Users/yt/Sites/landp_public
mkdir -p ${bup}

dir_list=(css essais img js php)

cp -p "${org}/landp.html" "${bup}/"
echo "'${org}/landp.html' moved to '${bup}'."

while (( i++ < ${#dir_list} )) {
dir=$dir_list[i]
cp -Rp "${org}/${dir}" "${bup}/"
echo "'${org}/${dir}' moved to '${bup}'."
}

echo ""
i=0
del_list=(php/landp.db php/landp.xml)

while (( i++ < ${#del_list} )) {
fil=$del_list[i]
rm -f "${bup}/${fil}"
echo "'${bup}/${fil}' removed from '${bup}'."
}
echo "task ended."


j'utilise donc l'expect builtin de Mac OS X 10.4.11.
--
« Sois heureux un instant. Cet instant, c'est ta vie. »
(Omar Khayam)
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Patrick Stadelmann
Le #23696801
In article (Une Bévue) wrote:

je dois lancer un script par sudo aussi je le lance par expect pour
éviter d'entrer le pass et là j'ai le message :



Pourquoi ne pas autoriser la commande sans mot de passe dans le sudoers ?

Patrick
--
Patrick Stadelmann
ST
Le #23697031
On 29/8/11 3:36 PM, Une Bévue wrote:
#!/usr/bin/expect -f

sudo /Users/yt/Tests/landp.zsh



ne faut il pas écrire

spawn sudo ...

?


expect "Password:"
send "monpasswordr"
expect "task ended."
send_user "Synchronisation of '/Users/yt/Sites/landp_new'n"
send_user " to '/Users/yt/Sites/landp_public' ended.n"


--
http://www.unices.org
unbewusst.sein
Le #23699431
ST
spawn sudo ...



si et ça roule maintenant...

--
« Tel n'a de chaleur pour ses amis, que pour les brûler. »
(Proverbe arabe)
TK
Le #23699911
Le 29/08/11 09:36, Une Bévue a écrit :
je dois lancer un script par sudo aussi je le lance par expect pour
éviter d'entrer le pass et là j'ai le message :



Plutôt que de lancer expect avec le mot de passe en clair, peut-être
est-il plus simple et plus sûr de faire un petit visudo pour autoriser
le lancement du script en question sans mot de passe (man sudoers ou
voir les exemples dans le fichier /etc/sudoers de base).
francois.jacquemin
Le #23748381
Une Bévue


landp.exp :
#!/usr/bin/expect -f

sudo /Users/yt/Tests/landp.zsh
expect "Password:"
send "monpasswordr"
expect "task ended."
send_user "Synchronisation of '/Users/yt/Sites/landp_new'n"
send_user " to '/Users/yt/Sites/landp_public' ended.n"


landp.zsh :
#!/bin/zsh


j'utilise donc l'expect builtin de Mac OS X 10.4.11.



Tu as essayé avec le flag -D pour voir où ça ne va pas ?
--
F. J.
gerald.coyot
Le #23749811
Une Bévue
François Jacquemin > Une Bévue >
>
>>
>> landp.exp :
>> #!/usr/bin/expect -f
>>
>> sudo /Users/yt/Tests/landp.zsh
>> expect "Password:"
>> send "monpasswordr"
>> expect "task ended."
>> send_user "Synchronisation of '/Users/yt/Sites/landp_new'n"
>> send_user " to '/Users/yt/Sites/landp_public' ended.n"
>>
>>
>> landp.zsh :
>> #!/bin/zsh
>
>>
>> j'utilise donc l'expect builtin de Mac OS X 10.4.11.
>
> Tu as essayé avec le flag -D pour voir où ça ne va pas ?

Non, on m'a expliqué qu'il fallait "spawner" devant le sudo et là ça roule
impeccable !



As-tu essayé autoexpect qui vient normalement avec la suite expect. Cela
donne en general en r'esultat un script que l`on doit adapter
(nettoyage) mais qui peut etre une bonne base pour des actions
complexes.

--
Amitiés, Gérard Cojot
'Bienheureux les fêlés, ils laisseront passer ma lumière'[M.Audiard]
http://perso.orange.fr/gerard.cojot/
Une Bévue
Le #23751431
On 11/09/2011 20:40, Gérard Cojot wrote:
As-tu essayé autoexpect qui vient normalement avec la suite expect. Cela
donne en general en r'esultat un script que l`on doit adapter
(nettoyage) mais qui peut etre une bonne base pour des actions
complexes.



non, mais j'essaierai d'y penser la prochaine fois
unbewusst.sein
Le #23771401
Gérard Cojot

As-tu essayé autoexpect qui vient normalement avec la suite expect. Cela
donne en general en r'esultat un script que l`on doit adapter
(nettoyage) mais qui peut etre une bonne base pour des actions
complexes.



Ben, je viens juste d'essayer, ça marche pô, il faut que je revoie mon
install d'expect :

imyt% autoexpect
can't find package Expect
while executing
"package require Expect"
(file "/opt/local/bin/autoexpect" line 6)
imyt%

c'est curieux car expect, comme autoexpect sont bien de MacPorts :
imyt% which expect
/opt/local/bin/expect
imyt% which autoexpect
/opt/local/bin/autoexpect
imyt%


à fouiner donc...

--
« L'homme vraiment libre est celui qui sait refuser une invitation à
dîner sans donner de prétexte. »
(Beaumarchais)
Publicité
Poster une réponse
Anonyme