OVH Cloud OVH Cloud

tâches crom

5 réponses
Avatar
LF36
bonjour,

je souhaite exécuter un script php régulièrement. lorsque j'indique en ligne
de commande :
home/dossier/www/script.php
rien de fonctionne. Cron m'indique :

/bin/sh: Envoi: command not found
Une idée ?Merci d'avanceLaurent

5 réponses

Avatar
ky2ivobo
bonjour,

je souhaite exécuter un script php régulièrement. lorsque j'indique en ligne
de commande :
home/dossier/www/script.php
rien de fonctionne. Cron m'indique :

/bin/sh: Envoi: command not found
Une idée ?Merci d'avanceLaurent



ben oui, il faut spécifier le shell avec lequel tu veux exécuter le

script, et quand je dis 'shell' je devrai plutot dire 'interpreteur'
donc, tu dois spécifier :
php /home/dossier/www/script.php

Sinon, le systeme tente de l'exécuter avec sh

Avatar
ToYKillAS
LF36 wrote:
bonjour,

je souhaite exécuter un script php régulièrement. lorsque j'indique en ligne
de commande :
home/dossier/www/script.php
rien de fonctionne. Cron m'indique :

/bin/sh: Envoi: command not found
Une idée ?Merci d'avanceLaurent


Un ptit tutoriel
http://www.linuxhelp.net/guides/cron/

+
man cron
man crontab

--
Even though I walk through the valley of the shadow of death,
I will fear no evil, for you are with me;
your rod and your staff, they comfort me.

Avatar
l'indien
On Mon, 10 Jan 2005 12:56:43 +0100, ky2ivobo wrote:

bonjour,

je souhaite exécuter un script php régulièrement. lorsque j'indique en ligne
de commande :
home/dossier/www/script.php
rien de fonctionne. Cron m'indique :

/bin/sh: Envoi: command not found
Une idée ?Merci d'avanceLaurent

ben oui, il faut spécifier le shell avec lequel tu veux exécuter le

script, et quand je dis 'shell' je devrai plutot dire 'interpreteur'
donc, tu dois spécifier :
php /home/dossier/www/script.php


Ou bien spécifier l'interpréteur dans le script en mettant:
#!/usr/bin/php
sur la première ligne du script.

Sinon, le systeme tente de l'exécuter avec sh


Cron peut-être, mais pas le système. Pour lancer un executable, le noyau
regarde le début du fichier. S'il commence par #! alors il lance la
commande spécifiée avec le nom du script en argument. Sinon, il regarde
si le format du fichier correspond à un format d'executable qu'il connait
(ELF, parfois aussi a.out) ensuite il regarde les formats enregistrés par
l'utilisateur quand c'est le cas (binfmt_misc).
Si aucune de ces méthodes ne marche, le lancement échoue. Jamais le
noyau ne prends la décision de lancer le shell si on ne lui demande pas
explicitement lors de l'appel ou dans le script.


Avatar
ky2ivobo

Cron peut-être, mais pas le système. Pour lancer un executable, le noyau
regarde le début du fichier. S'il commence par #! alors il lance la
commande spécifiée avec le nom du script en argument. Sinon, il regarde
si le format du fichier correspond à un format d'executable qu'il connait
(ELF, parfois aussi a.out) ensuite il regarde les formats enregistrés par
l'utilisateur quand c'est le cas (binfmt_misc).
Si aucune de ces méthodes ne marche, le lancement échoue. Jamais le
noyau ne prends la décision de lancer le shell si on ne lui demande pas
explicitement lors de l'appel ou dans le script.



Voila donc une excellente explication qui vien corriger les bétises que
je peux (tres tres rarement, quasi jamais d'ailleurs) écrire ;-)

Merci des précisions ;-)

Avatar
l'indien
On Mon, 10 Jan 2005 15:41:28 +0100, ky2ivobo wrote:


Cron peut-être, mais pas le système. Pour lancer un executable, le noyau
regarde le début du fichier. S'il commence par #! alors il lance la
commande spécifiée avec le nom du script en argument. Sinon, il regarde
si le format du fichier correspond à un format d'executable qu'il connait
(ELF, parfois aussi a.out) ensuite il regarde les formats enregistrés par
l'utilisateur quand c'est le cas (binfmt_misc).
Si aucune de ces méthodes ne marche, le lancement échoue. Jamais le
noyau ne prends la décision de lancer le shell si on ne lui demande pas
explicitement lors de l'appel ou dans le script.



Voila donc une excellente explication qui vien corriger les bétises que
je peux (tres tres rarement, quasi jamais d'ailleurs) écrire ;-)

Merci des précisions ;-)


De rien, la connaissance, l'information sont fait pour être partagées,
amha.
Une autre précision:
il existe une fonction de la libc, system, qui lance une commande dans un
shell. Cette fonction est bien un wrapper de la libc et non une commande
noyau. Elle peut pourtant faire croire que le comportement du noyau est de
lancer un shell...
Il faut préciser que cette commande est considérée dangereuse et de
moins en moins utilisée (en tout cas, à ne jamais mettre dans aucun
nouveau programme) car elle est à l'origine de nombreux trous de
sécurité.