Problème avec mes taches cron

Nouveau WRInaute
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.
 
WRInaute passionné
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).
 
Nouveau WRInaute
Julia41 a dit:
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.
 
WRInaute accro
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
 
WRInaute passionné
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 ?
 
Nouveau WRInaute
Julia41 a dit:
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
 
WRInaute passionné
Bon, tu peux tenter ça, je ne garanti rien

Tu créé un fichier importcatalogue.php.sh
Dedans tu mets ta commande :
Code:
#!/bin/sh
# Lancement du script
/usr/bin/php-cgi /home/monsite/public_html/importcatalogue.php
Dans ton crontab
Code:
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...
 
Nouveau WRInaute
Julia41 a dit:
Tu créé un fichier importcatalogue.php.sh
Dedans tu mets ta commande :
Code:
#!/bin/sh
# Lancement du script
/usr/bin/php-cgi /home/monsite/public_html/importcatalogue.php
Dans ton crontab
Code:
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 dit:
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.
 
WRInaute passionné
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...
 
Nouveau WRInaute
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
 
WRInaute passionné
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...
 
Nouveau WRInaute
Julia41 a dit:
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.
 
WRInaute passionné
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
 
Discussions similaires
Haut