La syntaxe de l'entrée crontab semble correcte. En effet, si vous éditez votre crontab en utilisant " crontab -e
"(comme vous le devriez), vous obtiendrez une erreur si vous spécifiez une entrée crontab syntaxiquement invalide.
-
Tout d'abord, est-ce que /path_to_my_php_script/info.php
s'exécute correctement depuis la ligne de commande ?
-
Si c'est le cas, est-ce qu'il fonctionne aussi correctement comme ça ?
/bin/sh -c "(export PATH=/usr/bin:/bin; /path_to_my_php_script/info.php </dev/null)"
-
Si ça marche, est-ce que ça marche comme ça ?
/bin/sh -c "(export PATH=/usr/bin:/bin; /path_to_my_php_script/info.php </dev/null >/dev/null 2>&1)"
L'étape (3) est similaire à la façon dont cron va exécuter votre programme (comme documenté dans "man 5 cron".
Le problème le plus probable que vous rencontrez est que le PATH que cron utilise pour exécuter votre programme est trop restrictif. Par conséquent, vous pouvez souhaiter ajouter quelque chose comme ce qui suit en haut de votre entrée crontab (vous devrez ajouter dans tous les répertoires dont votre script aura besoin) :
PATH=~/bin:/usr/bin/:/bin
Notez également que cron utilisera par défaut /bin/sh
pas du tout. Si vous avez besoin de bash, ajoutez également ceci au début de votre fichier crontab :
SHELL=/bin/bash
Notez que ces deux changements affecteront todo les entrées de la crontab. Si vous souhaitez simplement modifier ces valeurs pour votre info.php
vous pourriez faire quelque chose comme ceci :
*/2 * * * * /bin/bash -c ". ~/.bashrc; /path_to_my_php_script/info.php"
Il convient également de mentionner que sur un système configuré pour le "courrier" (en d'autres termes, un système qui a un MTA configuré [sendmail/postfix/etc]), tous les résultats des programmes crontab vous sont envoyés automatiquement par courrier électronique. Un système de bureau Ubuntu par défaut n'aura pas de courrier local configuré, mais si vous travaillez sur un serveur, vous pouvez simplement taper "mail" dans un terminal pour voir tous ces courriers cron. Ceci s'applique également à la fonction " at
Commande ".