Problème de Cron

11 réponses
AuteurMessage

ddpetit
Modérateur

Photo de ddpetit

Inscrit le : 03/05/2006

# Le 09/08/2010 à 10:08

J'ai un cron qui tourne sur le serveur qui est censé récupérer les stats des régies publicitaires à raison d'une fois par heure. Or aucune vente ne remonte, le script en lui même fonctionne puisque si je l'exécute en ligne de commande cela fonctionne (php5 /path/regies.php).

J'ai regardé également mes logs, qui m'indiquent que le script est bien executé chaque heure. La commande executée par cron : php5 /path/regies.php

Je pense que le soucis vient de l'intérieur du script, voici en gros ce qui ce cache dans mon code PHP (regies.php) :


system("php5 /path/".$regie."_get.php ".$date);


Une idée ?

Loccasion.com - Vente de voitures d'occasionOuvrir dans une nouvelle fenetre - Mandataire AutoOuvrir dans une nouvelle fenetre

allogarage
Membre

Photo de allogarage

Inscrit le : 14/10/2008

# Le 09/08/2010 à 10:15

Ce serait pas un problème de path?
la commande php5 est trouvée en ligne de commande parce que le répertoire ou elle se trouve est dans le PATH
pour que ca marche il faut peut etre remplacer php5 en ajoutant le PATH complet.

Sur mon dédié c'est /usr/local/bin/php5

pour savoir le path : which php5

Guide comparatif des garages automobilesOuvrir dans une nouvelle fenetre | Guide comparatif des garages motoOuvrir dans une nouvelle fenetre | Annuaire auto motoOuvrir dans une nouvelle fenetre

abravanel666
Modérateur

 

Inscrit le : 19/07/2009

# Le 09/08/2010 à 10:48

passe par apache en faisant un wget ton fichier php
a la limite tu verras les appels dans les logs apaches

http://www.magasins-usine.infoOuvrir dans une nouvelle fenetre http://www.shoppingactu.comOuvrir dans une nouvelle fenetre

ddpetit
Modérateur

Photo de ddpetit

Inscrit le : 03/05/2006

# Le 09/08/2010 à 10:51

Salut Nicolas,

J'ai vérifié le path de PHP, et j'ai modifié donc ma commande comme tu me l'as indiqué, mais cela ne change rien.

Je vais m'envoyer un mail lorsque mon regie_get.php est effectué pour voir déjà si le problème vient de son execution ou non.

Loccasion.com - Vente de voitures d'occasionOuvrir dans une nouvelle fenetre - Mandataire AutoOuvrir dans une nouvelle fenetre

Bool
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 09/08/2010 à 10:55

Normalement quand le script affiche un truc (ou génère une erreur), cron envoie un email au compte unix associé. Selon ta configuration et les serveurs, ça se situerait dans /var/mail/{login}
A moins que tu ais redirigé tous les messages vers /dev/null, tu devrais y trouver des messages d'erreur concernant ton problème.

Google is watching you.

krucial
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 09/08/2010 à 10:57

system("php5 /path/".$regie."_get.php ".$date." > /path/script_".$regie.".log &2>1");

Si ca bugge, tu le verras dans script[ID DE REGIE]].log

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre

ddpetit
Modérateur

Photo de ddpetit

Inscrit le : 03/05/2006

# Le 09/08/2010 à 11:02

Merci, j'essaie de regarder. JC le &2 > 1 ça correspond à quoi ? Je ne comprends pas tu rediriges quoi vers quel endroit ...

Loccasion.com - Vente de voitures d'occasionOuvrir dans une nouvelle fenetre - Mandataire AutoOuvrir dans une nouvelle fenetre

ddpetit
Modérateur

Photo de ddpetit

Inscrit le : 03/05/2006

# Le 09/08/2010 à 11:19

C'est bon le changement de path pour PHP5 + la même pour le Cron et ça fonctionne. Merci ! (Par contre JC je veux bien ton explication )

Loccasion.com - Vente de voitures d'occasionOuvrir dans une nouvelle fenetre - Mandataire AutoOuvrir dans une nouvelle fenetre

Bool
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 09/08/2010 à 11:24

Il redirige les flux de sortie & d'erreur vers un fichier de log, plutôt que de laisser cron les envoyer par email. cf mon message au dessus.

Google is watching you.

Liliandev
Membre

Photo de Liliandev

Inscrit le : 06/03/2009

# Le 10/08/2010 à 17:50

Dans les crons, il faut pas hésiter non plus à préciser le path complet de l'executable PHP, j'ai déjà eu des tours ...

Lilian | High-TechOuvrir dans une nouvelle fenetre - Communauté WebmasterOuvrir dans une nouvelle fenetre - Communauté InformatiqueOuvrir dans une nouvelle fenetre - Comparateur de prixOuvrir dans une nouvelle fenetre

ddpetit
Modérateur

Photo de ddpetit

Inscrit le : 03/05/2006

# Le 10/08/2010 à 18:03

Une autre possibilité : pour le cron donner uniquement le path + script /path/script.php
Et dans le fichier php, mettre en première ligne : le path complet de l'executable PHP comme suit : #!/usr/local/php5/bin/php

Loccasion.com - Vente de voitures d'occasionOuvrir dans une nouvelle fenetre - Mandataire AutoOuvrir dans une nouvelle fenetre

dob
Modérateur

Photo de dob

Inscrit le : 10/05/2005

# Le 10/08/2010 à 18:09

Dans ce cas il faut pas oublier de chmod +x

De mon côté pour les crons PHP je fais d'abord un cd dans le dossier du script. Ça permet de faire des crons dans des applis/frameworks pas prévus en chemins absolus (includes et compagnie).

Julien TartarinOuvrir dans une nouvelle fenetre
Founder & CEO @ Mailjet.comOuvrir dans une nouvelle fenetre

Répondre

Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.