Problème avec mes taches cron

hsii04
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 29
Inscription: 15 Mar 2005

Problème avec mes taches cron

Message le Mer Sep 19, 2007 8:29

Bonjour,

Je rencontre un soucis au niveau de mes taches cron, j'en ai plusieurs de programmé mais malheureusement certaines ne se termine pas jusqu'au bout, or quand je les lances à la main via webmin celles-ci se terminent correctement.
J'ai essayé d'insérer cette ligne de code au debut de mes scripts :
ini_set('max_execution_time', 0);
Mais rien n'y fait

Autre problème également, lorsque que j'ai lancé une tache, au bout d'un certain temps, la connection à MySQL a du, je pense, se fermer car j'avais ce message d'erreur "MySQL has gone away".

Quelqu'un pourrait-il m'aider à résoudre ces problèmes ?
Merci d'avance.


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1765
Inscription: 31 Aoû 2007

Message le Mer Sep 19, 2007 10:43

Quels types de scripts désires-tu lancer via tâche cron, PHP, shell/bash ?
Et peut-on avoir la fréquence à laquelle tu souhaites les lancer, ainsi que si possible le début et la fin de ton script (voir entier s'il n'est pas confidentiel ni trop long).

hsii04
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 29
Inscription: 15 Mar 2005

Message le Mer Sep 19, 2007 13:09

Julia41 a écrit:Quels types de scripts désires-tu lancer via tâche cron, PHP, shell/bash ?
Et peut-on avoir la fréquence à laquelle tu souhaites les lancer, ainsi que si possible le début et la fin de ton script (voir entier s'il n'est pas confidentiel ni trop long).


Mes scripts sont en PHP, mes taches sont lancées une fois par jour et servent à télécharger des catalogues produits (csv ou xml) afin de les enregistrer en base.


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Message le Mer Sep 19, 2007 14:09

Sans le code on peut pas faire grand chose. Tu n'aurais pas 2 requetes imbriqués par hasard ? si c'etait une question de temps, le message d'erreur devrait etre du genre : "maximum time limited 30 secondes"
et pas "MySQL has gone away"... donc d'ores et deja, il faut optimiser le code


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1765
Inscription: 31 Aoû 2007

Message le Mer Sep 19, 2007 14:24

J'avais déjà eu un problème pour du cron avec des scripts en php, la première avait été un problème de permission...
La seconde avait été.. Je ne l'avais pas comprise mais j'avais réussi à la résoudre en éxecutant un autre script SH qui lui appelait le script php
/mais/où/est/mon/binaire/php /blabla/je/suis/en/hollande/script.php
Sinon, la simple ligne de crontab -l me donnera peut-être ton erreur.

et pour ton MySQL, c'est pas une histoire de max execution time ou un truc dans le genre de ta config php ?


rog
WRInaute passionné
WRInaute passionné
 
Messages: 1662
Inscription: 21 Sep 2006

Message le Mer Sep 19, 2007 14:49

MySQL has gone away


ça c'est quand le server mysql s'est arrêté pendant la requête

rog

hsii04
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 29
Inscription: 15 Mar 2005

Message le Mer Sep 19, 2007 15:27

Julia41 a écrit:J'avais déjà eu un problème pour du cron avec des scripts en php, la première avait été un problème de permission...
La seconde avait été.. Je ne l'avais pas comprise mais j'avais réussi à la résoudre en éxecutant un autre script SH qui lui appelait le script php
/mais/où/est/mon/binaire/php /blabla/je/suis/en/hollande/script.php
Sinon, la simple ligne de crontab -l me donnera peut-être ton erreur.

et pour ton MySQL, c'est pas une histoire de max execution time ou un truc dans le genre de ta config php ?


Voici par exemple une de mes taches :
0 1 * * * /usr/bin/php-cgi /home/monsite/public_html/importcatalogue.php


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1765
Inscription: 31 Aoû 2007

Message le Mer Sep 19, 2007 15:46

Bon, tu peux tenter ça, je ne garanti rien

Tu créé un fichier importcatalogue.php.sh
Dedans tu mets ta commande :
Code: Tout sélectionner
#!/bin/sh
# Lancement du script
/usr/bin/php-cgi /home/monsite/public_html/importcatalogue.php

Dans ton crontab
Code: Tout sélectionner
0 1 * * * /home/scripts/importcatalogue.php.sh


Sinon autre petit problème possible, je ne sais pas sous quel distribution tu es, mais php-cgi ne serait pas mieux par php ou php5...

Et j'aimerais bien avoir les owner de importcatalogue.php et de ce qui est relatif à ce script.
Quand tu execute ce script avec l'user "monsite" cela marche-til et que dises tes logs aussi...

hsii04
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 29
Inscription: 15 Mar 2005

Message le Jeu Sep 20, 2007 8:38

Julia41 a écrit:Tu créé un fichier importcatalogue.php.sh
Dedans tu mets ta commande :
Code: Tout sélectionner
#!/bin/sh
# Lancement du script
/usr/bin/php-cgi /home/monsite/public_html/importcatalogue.php

Dans ton crontab
Code: Tout sélectionner
0 1 * * * /home/scripts/importcatalogue.php.sh


Je viens d'essayer et ça me met :
/bin/sh: /home/scripts/importcatalogue.php.sh: Permission denied

Julia41 a écrit:Sinon autre petit problème possible, je ne sais pas sous quel distribution tu es, mais php-cgi ne serait pas mieux par php ou php5...


Je suis sous ubuntu et je n'ai pas de /usr/bin/php ou php5, je n'ai que php-cgi et php5-cgi.


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1765
Inscription: 31 Aoû 2007

Message le Jeu Sep 20, 2007 21:21

Je viens d'essayer et ça me met :
/bin/sh: /home/scripts/importcatalogue.php.sh: Permission denied


Hum bizarre... Donne moi les users avec lesquels ça marche (quand tu le lances à la main) et ceux avec lesquels tu lances tes cron, et le must serait les lignes de codes...

hsii04
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 29
Inscription: 15 Mar 2005

Message le Ven Sep 21, 2007 10:04

L'utilisateur avec lequel je le lance à la main via les taches cron de webmin et en automatique est le même :
nom : chassoprix
groupe : users
commande : /bin/sh

je t'envoie le script en mp


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1765
Inscription: 31 Aoû 2007

Message le Ven Sep 21, 2007 11:38

Bon, j'ai regardé ton script, le PHP n'est vraiment vraiment pas mon fort, et encore moins quand ça parle de SQL :p
Bon, je pense toujours que c'est un problème de droits...

/bin/sh: /home/scripts/importcatalogue.php.sh: Permission denied
Ta bien mis les perm sur ce fichier ?
chown chassoprix:users importcatalogue.php.sh
chmod a+x importcatalogue.php.sh

Bon, je trouve bizarre qu'il te le refuse, qu'à tu dans ton... cron.log je ne me rappelle plus du nom original, c'est peut-être ça dans /var/log tout est déplacé chez moi...

Sinon log ta tâche :
1 1 * * * ton_script >>/home/là/où/tu/veux/loguer/script.log

Et donne moi ce qui est écrit dedans...


rog
WRInaute passionné
WRInaute passionné
 
Messages: 1662
Inscription: 21 Sep 2006

Message le Ven Sep 21, 2007 15:38

la declaration de la tache cron doit etre liée à l'utilisateur

crontab -e -u user

rog

hsii04
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 29
Inscription: 15 Mar 2005

Message le Mar Sep 25, 2007 8:14

Julia41 a écrit:Bon, j'ai regardé ton script, le PHP n'est vraiment vraiment pas mon fort, et encore moins quand ça parle de SQL :p
Bon, je pense toujours que c'est un problème de droits...

/bin/sh: /home/scripts/importcatalogue.php.sh: Permission denied
Ta bien mis les perm sur ce fichier ?
chown chassoprix:users importcatalogue.php.sh
chmod a+x importcatalogue.php.sh

Bon, je trouve bizarre qu'il te le refuse, qu'à tu dans ton... cron.log je ne me rappelle plus du nom original, c'est peut-être ça dans /var/log tout est déplacé chez moi...

Sinon log ta tâche :
1 1 * * * ton_script >>/home/là/où/tu/veux/loguer/script.log

Et donne moi ce qui est écrit dedans...


J'ai fais ce que tu m'as dit (chown/chmod) et ça fonctionne maintenant, j'ai juste quelques erreurs MySQL "MySQL has gone away" quand le script est long à être executé.

Je te remercie pour ton aide.


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1765
Inscription: 31 Aoû 2007

Message le Mar Sep 25, 2007 9:27

Pour ton erreur MySQL has blabla j'pense à ton php max execution time, n'utilisant que de légés scripts php, je ne sais pas trop comment on la modifie... Ou peut-être aussi du coté des ressources MySQL allouées...

Et sinon pour l'execution de ta tâche cron, c'est quand même bizarre qu'on soit obligé de passer par un script supplémentaire, mais bon, du moment que ça marche :wink:

Et sinon en passant, jolie script

Problème avec mes taches cron

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité