4 votes

Pourquoi mon cronjob ne s'exécute-t-il pas ?

J'ai un cronjob dans /etc/cron.d/mycron qui ressemble à ceci :

0 3 * * * apache php /path/to/my/script.php

Dans le même fichier, il y a d'autres cronjobs qui commencent à s'exécuter en tant que root et d'autres utilisateurs (qui fonctionnent), mais pour une raison quelconque, ce job qui s'exécute en tant qu'apache ne s'exécute pas et ne signale rien dans /var/log/messages ou d'envoyer quoi que ce soit au MAILTO dans le fichier cron. Lorsque je su apache et exécuter la commande du cronjob, cela fonctionne bien, mais cron ne l'aime pas.

C'est un problème qui me préoccupe depuis longtemps et, jusqu'à présent, j'ai rassemblé les possibilités suivantes :

  • L'utilisateur apache n'a pas de répertoire personnel (les autres utilisateurs cron en ont un), et crond n'aime pas cela.
  • Il y a des PAM ou des /etc/security/access.conf bloquant apache à l'aide de crond, bien que /etc/security/access.conf est entièrement commentée.
  • SELinux - c'est généralement le coupable lorsqu'un problème semble vraiment bizarre.

Avez-vous des idées ou une expérience de ce problème et de la solution à y apporter ?

Remerciements

7voto

Tvartom Points 123

Un répertoire personnel doit être défini pour l'utilisateur. Si l'utilisateur

Y

HOME=/tmp
0 3 * * *         apache    /usr/bin/php /path/to/my/script.php

1voto

Selivanov Pavel Points 2126
  • Essayez d'utiliser le chemin complet pour php dans la configuration de cron : /usr/bin/php
  • Vérifiez le répertoire personnel d'Apache : grep apache /etc/passwd Pour autant que je sache, l'utilisateur doit toujours avoir un répertoire personnel. Il peut ne pas résider dans /home.
  • Vérifier les messages syslog concernant les événements de sécurité. S'il s'agit de PAM, vous verrez quelque chose
  • Essayez de désactiver SELinux

0voto

nickgrim Points 4236

cron fonctionne par défaut avec un nombre très limité de PATH ; devez-vous indiquer le chemin d'accès complet à l'application php binaire ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X