Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

problème de tableau sous bash exécuté par cron

8 réponses
Avatar
Philippe R
Bonsoir à tous,

j'ai un souci de script bash exécuté par cron

voici un example pour tester :

voici ma ligne cron :
*/1 * * * * root /etc/scripts/test.sh
(cela me donne de temps de changer en live la partie qui "merdouille" ....)
voici mon script :
#!/bin/sh
#Array=([1]=filemgr-all [2]=newsletter [3]=phpmyadmin [4]=roundcubemail
[5]=tracker [6]=calendrier [7]=ipplan [8]=dspam [9]=postfix [10]=spam)
Array[1]='filemgr-all'
Array[2]='newsletter'
Array[3]='phpmyadmin'
Array[4]='roundcubemail'
Array[5]='tracker'
Array[6]='calendrier'
Array[7]='ipplan'
Array[8]='dspam'
Array[9]='postfix'
Array[10]='spam'
NbElement=${#Array[*]}
echo $NbElement
echo ${Array[10]}

le retour par mail de mon script:
#!/bin/sh
#declare -a Array=([1]=filemgr-all [2]=newsletter [3]=phpmyadmin
[4]=roundcubemail [5]=tracker [6]=calendrier [7]=ipplan [8]=dspam
[9]=postfix [10]=spam)
Array[1]='filemgr-all'
Array[2]='newsletter'
Array[3]='phpmyadmin'
Array[4]='roundcubemail'
Array[5]='tracker'
Array[6]='calendrier'
Array[7]='ipplan'
Array[8]='dspam'
Array[9]='postfix'
Array[10]='spam'
NbElement=${#Array[*]}
echo $NbElement
echo ${Array[10]}

ce que j obtiens lorsque j'exécute à la main
./test.sh
10
spam

version de mon bash :
=> bash --version
GNU bash, version 4.1.2(1)-release (i486-pc-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

version de ma debian :
cat /etc/debian_version
squeeze/si

merci de votre aide

philippe




--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/4BAE470B.5060903@worm-fr.com

8 réponses

Avatar
Kevin Hinault
Le 27 mars 2010 18:57, Philippe R a écrit :
Bonsoir à tous,

j'ai un souci de script bash exécuté par cron



J'ai lu plusieurs fois ton mail mais je n'ai pas réussi à trouver ce
qui te tracasse.

Je dois sûrement être un peu bête :)

--
Kévin

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Jeremie COURREGES-ANGLAS
--LQksG6bCIzRHxTLp
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Le samedi 27 mars 2010 à 06:57:31, Philippe R a écrit :
voici un example pour tester :

voici ma ligne cron :
*/1 * * * * root /etc/scripts/test.sh
(cela me donne de temps de changer en live la partie qui "merdouille" ... .)
voici mon script :
#!/bin/sh



1) Que fait le 'root' sur cette ligne cron ?
La commande exécutée ici est 'root /etc/scripts/test.sh'.
Perso je n'ai pas de commande 'root' sur mes debian :)
'*/1' est équivalent à '*'.

2) Ton script devrait avoir pour première ligne :

#!/bin/bash
...

En effet un shell POSIX comme dash ne supporte pas les tableaux.
Tu ne devrais pas faire la supposition que /bin/sh est un lien vers bash.
Sinon, tu peux construire le même tableau ainsi :

Array=( '' filemgr-all newsletter phpmyadmin ... )

Dans un bash / ksh, les tableaux commencent à l'indice zéro.


le retour par mail de mon script:
#!/bin/sh
#declare -a Array=([1]=filemgr-all [2]=newsletter [3]=phpmyadmin
[4]=roundcubemail [5]=tracker [6]Êlendrier [7]=ipplan [8]=dsp am
[9]=postfix [10]=spam)
Array[1]='filemgr-all'
Array[2]='newsletter'
Array[3]='phpmyadmin'
Array[4]='roundcubemail'
Array[5]='tracker'
Array[6]='calendrier'
Array[7]='ipplan'
Array[8]='dspam'
Array[9]='postfix'
Array[10]='spam'
NbElement=${#Array[*]}
echo $NbElement
echo ${Array[10]}



Le mail que cron t'envoie contient le contenu de ton script ?
Pas de messages d'erreurs, ou autre ?
'fin je pense que ton problème doit être résolu, là.

Santé !
--
"Free software, free society."
Jérémie Courrèges-Anglas
(New) GPG key : 06A11494

--LQksG6bCIzRHxTLp
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iQIcBAEBCAAGBQJLrlhlAAoJEGGRj78GoRSUHvYP/0/LG6UNPLCZ3RB6z1nZUFLw
EGQNun5njuhI+iCzTTeoi5DNbmySxyMmqzp7/iaP+V6YMXuI1F8Ad4g6YVw4cyFk
eiGJZ8KXP/vEfWJBd6Ekz6ohB+IGkFNYQ9gzyrqpLIEU+SYUAp2rx+19F297fVRO
xF70BFabBqrlnhf6BGjpNpU4MoiCgyKcxhCOT8o4NwLaVozp2TP2yMU0/3OppO6+
5z5kYZ/S7CSpy5ViGGPFRivIn2UiucRBbfjq+Smpb23Lf0f44j18g6rMXCsmweBh
cEvIc6NlQmKePDIujMxSIEo3+NTbox8kvpCfNhNPPRvLzgu8/6qoqtW+1hlsh3b/
rPXKPyWKT0/v/gJA/3d7WbjNySWIt6GFxXlQTopNuB6iFYiNUcwU8BYW4qFPghxW
9jGCHZDIsMX8fFTDPkhHxDk1bM+9HSuSIsawrtiRnnUWy/l5ChRY/2bgK2+K+D5J
UxjCyHcvy8+hNAK7FpuXwDBbqXtVLneS4TpGP6P+FG9VgZM+Q9WbNctNTwgX+cPw
Z/c89ZoW3QAllTwV3F+g+qLovAVZNWc4SL6huVFxqovpdp0GLZ52c0Gbi/DR2hTn
igRrxVARYqFTB5aWUnHF3WrsAf0OMHqtdRxXTK2KjKXHsv0wxgdl7Y77OURzaz2+
iAFCkhL6407Q/1HMZUGY
=vUQ6
-----END PGP SIGNATURE-----

--LQksG6bCIzRHxTLp--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Philippe R
bonsoir,
le problème est que lorsque mon script est lancé via la cron j ai une
erreur :

Syntax error: "(" unexpected


cette erreur correspond à la ligne :

Array=([1]=filemgr-all [2]=newsletter [3]=phpmyadmin [4]=roundcubemail [5]=tracker [6]Êlendrier [7]=ipplan [8]=dspam [9]=postfix [10]=spam)


or lorsqu'il est lancé à la main c'est ok je n'ai pas d'erreur

merci de ta réponse.

philippe


Le 27/03/2010 20:01, Kevin Hinault a écrit :
Le 27 mars 2010 18:57, Philippe R a écrit :

Bonsoir à tous,

j'ai un souci de script bash exécuté par cron



J'ai lu plusieurs fois ton mail mais je n'ai pas réussi à trouver ce
qui te tracasse.

Je dois sûrement être un peu bête :)







--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Jeremie COURREGES-ANGLAS
--BwCQnh7xodEAoBMC
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Le samedi 27 mars 2010 à 08:11:33, Jeremie COURREGES-ANGLAS a écr it :

1) Que fait le 'root' sur cette ligne cron ?
La commande exécutée ici est 'root /etc/scripts/test.sh'.



Oubliez moi. Cette ligne est bien entendu valide.
J'aurais pas dû trinquer si vite... ^^

--
"Free software, free society."
Jérémie Courrèges-Anglas
(New) GPG key : 06A11494

--BwCQnh7xodEAoBMC
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iQIcBAEBCAAGBQJLrlwXAAoJEGGRj78GoRSUOzsP/26SuWRwpnuwlPPMj+2WOdYH
5rdalkc+9UDS8Hyi7GwKFDSmQVCTm6lYc5+U9Ya2m39kVGTkpt9nAUp1JvgAn81T
4ZEOnIG09kKvJfEV7C58hMpwq4Xq1ERtnY2NfSZPTY8HoCsRbQzvVRE/L0tbvXer
rea9PcGi43EptYddanbn/z2CvDVv/fmISkArtTrCiAGKf1f/jEBOLci4p6i6/T49
nejmvT6WH7MsU5EA5NeMJsCozlB9HkGq5imU5eTeWe5fkMRK+XUQfEpcaAplDzVT
uYeitEdxLwvznLQXfFFsguCbKO5MjBWgpsNgo9jaZduE02d+mHwqvShRjQgzjXxq
W/XomnkDiD7H5ktyvCGghyIa1G9wkvR0M7KN0u6CHOmUgQCDzjzcbzSbjMO0G2mX
E6neWdnP8QyJlbnA5GSq8wAzMGDg50BuvP+FK3fyE2BLyZDw1NNOv/4KQWLsq0IA
siyDZfAO+dSsxqr6IaQei4aCvd7sHsbsTR5JrpXhrEBzoaqE/vIa5kth9jBkETnQ
/1OGTflPTA1ygdCFoAxYALtwABddjGunZ3Y1T9r19NceC1/22aDo/64Cc8nWBfOe
m6lz4c8O23nIH2MTToU4zxryvDr3rKrkjDW1eKOB5QAmtsG8iCXs48awlFeoXRJE
nrE3JLcwE7VfYhpkwwEO
=fwuz
-----END PGP SIGNATURE-----

--BwCQnh7xodEAoBMC--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Philippe R
Le 27/03/2010 20:11, Jeremie COURREGES-ANGLAS a écrit :
Le samedi 27 mars 2010 à 06:57:31, Philippe R a écrit :

voici un example pour tester :

voici ma ligne cron :
*/1 * * * * root /etc/scripts/test.sh
(cela me donne de temps de changer en live la partie qui "merdouille" ....)
voici mon script :
#!/bin/sh



1) Que fait le 'root' sur cette ligne cron ?
La commande exécutée ici est 'root /etc/scripts/test.sh'.
Perso je n'ai pas de commande 'root' sur mes debian :)
'*/1' est équivalent à '*'.



=> désolé oui c est vrai :)
2) Ton script devrait avoir pour première ligne :

#!/bin/bash



=> oui c est vrai j ai changé
...

En effet un shell POSIX comme dash ne supporte pas les tableaux.
Tu ne devrais pas faire la supposition que /bin/sh est un lien vers bash.
Sinon, tu peux construire le même tableau ainsi :

Array=( '' filemgr-all newsletter phpmyadmin ... )



=> j ai essaye
Dans un bash / ksh, les tableaux commencent à l'indice zéro.


le retour par mail de mon script:
#!/bin/sh
#declare -a Array=([1]=filemgr-all [2]=newsletter [3]=phpmyadmin
[4]=roundcubemail [5]=tracker [6]Êlendrier [7]=ipplan [8]=dspam
[9]=postfix [10]=spam)
Array[1]='filemgr-all'
Array[2]='newsletter'
Array[3]='phpmyadmin'
Array[4]='roundcubemail'
Array[5]='tracker'
Array[6]='calendrier'
Array[7]='ipplan'
Array[8]='dspam'
Array[9]='postfix'
Array[10]='spam'
NbElement=${#Array[*]}
echo $NbElement
echo ${Array[10]}



Le mail que cron t'envoie contient le contenu de ton script ?
Pas de messages d'erreurs, ou autre ?
'fin je pense que ton problème doit être résolu, là.



=> ben non j ai l erreur :

/etc/scripts/test.sh: 7: Syntax error: word unexpected (expecting ")")


voici le contenu total du script lancé :
#!/bin/bash
#Array=([1]=filemgr-all [2]=newsletter [3]=phpmyadmin [4]=roundcubemail [5]=tracker [6]Êlendrier [7]=ipplan [8]=dspam [9]=postfix [10]=spam)
Array('' filemgr-all newsletter )
NbElement=${#Array[*]}
echo $NbElement
echo ${Array[10]}
echo "================"
#env
#declare toto
#toto=(filemgr-all test)
#NbElement1=${#toto[*]}
#echo $NbElement1
echo titi

Santé !



à la tienne :)
merci de ta réponse
--
"Free software, free society."
Jérémie Courrèges-Anglas
(New) GPG key : 06A11494






--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Philippe R
Le 27/03/2010 20:27, Jeremie COURREGES-ANGLAS a écrit :
Le samedi 27 mars 2010 à 08:11:33, Jeremie COURREGES-ANGLAS a écrit :

1) Que fait le 'root' sur cette ligne cron ?
La commande exécutée ici est 'root /etc/scripts/test.sh'.



Oubliez moi. Cette ligne est bien entendu valide.
J'aurais pas dû trinquer si vite... ^^



pas de soucis c'est déjà sympa de se pencher (attention à ne pas tomber)
sur le problème :)

en solution de contournement je fait exécute mon script via une cron d
une autre machine via ssh mais j aimerais comprendre pourquoi j ai cette
foutue erreur .
merci
--
"Free software, free society."
Jérémie Courrèges-Anglas
(New) GPG key : 06A11494






--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Grégory Bulot
Philippe R à écrit le Sat, 27 Mar 2010 18 :57:31
+0100
Bonsoir à tous,

j'ai un souci de script bash exécuté par cron



J'ai essayé votre bout de code chez moi, en tant que user : RAS
bash --version
GNU bash, version 3.2.39(1)-release (i486-pc-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.




--

Cordialement
Grégory BULOT

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Philippe R
Le 28/03/2010 11:43, Grégory Bulot a écrit :
Philippe R à écrit le Sat, 27 Mar 2010 18:57:31
+0100

Bonsoir à tous,

j'ai un souci de script bash exécuté par cron



J'ai essayé votre bout de code chez moi, en tant que user : RAS
bash --version
GNU bash, version 3.2.39(1)-release (i486-pc-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.



idem pour moi dans cette version, mais dans la version :
=> bash --version
GNU bash, version 4.1.2(1)-release (i486-pc-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

j ai des soucis :( je suis en sid

merci

philippe









--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/