2010-11-16 19 views
2

Gurus,script PHP ne fonctionnera pas comme travail CRON

J'ai codé pour mon client un script PHP qui effectue certaines données importantes munging sur les fichiers texte qu'il crée.

Le code est complet et je dois maintenant automatiser le script. Le problème est qu'il semble exécuter seulement manuellement. Je ne vais pas courir comme travail CRON.

C'est ce que je l'ai essayé avec l'en-tête de mon script "#/usr/bin/php -q!":

00 1 * * * /usr/bin/php -q /HDDLogs/HDDProcess.php >>/HDDLogs/HDDProcess.log 2>&1 

Le fichier journal ne se créé, mais est vide. J'ai essayé de supprimer le -q pour le mode silencieux: pas de différence. N'a toujours pas fonctionné en tant que travail CRON. Le fichier PHP est chmod-ed 755.

Apache 2.0 et PHP 5.3 sont installés sur ce serveur. Je possède entièrement le répertoire avec mon code et les fichiers de données sont situés.

Au cas où vous vous le demanderiez, mon script n'invite jamais une URL.

Une idée?

Merci,

Al.

+1

@ user484638 - supprimer le fichier journal, et voir qu'il a été recréé? Si c'est le cas, ce qui signifie que votre PHP est encore à finsh 'ps auwx | grep HDDProcess.php' à vérifier est toujours en cours – ajreal

+0

J'ai essayé ce que vous suggérez. Le fichier journal n'est pas recréé. – Chris

+0

@Paulo: Correct. le fichier HDDProcess.log est vide. Je reçois le courrier CRON avec un corps vide (?). Pas de message. Et c'est un crontab utilisateur où je cours une douzaine de scripts bash sans problème. – Chris

Répondre

2

Je pense qu'il devrait être:

"... /usr/bin/php -q -f /HDDLogs/HDDProcess.php ..."

ou

"... /usr/bin/php -q < /HDDLogs/HDDProcess.php ...".

+1

Oui, vous avez besoin de l'option -f pour exécuter un fichier à partir de la ligne de commande. De 'man php'," -f fichier Parse et exécuter le fichier " – JAL

+1

J'ai essayé vos deux suggestions. Ne fonctionne pas: le script php ne démarre jamais. – Chris

+0

/HDDLogs/HDDProcess.log est vide? Tout courrier cron à la boîte de réception? Le script s'exécute quand vous "su" au propriétaire de cronjob? Est-ce le crontab du système sur/etc/crontab ou un crontab utilisateur? –