PHPNET Assistance

Support et Entraide PHPNET => Hébergement Premium => Discussion démarrée par: Superbegood le 25 Mai 2016 à 14:08:17

Titre: Logs pour tâches cron
Posté par: Superbegood le 25 Mai 2016 à 14:08:17
Bonjour,
J'essaye sur un mutualisé Premium de tracer les crons dans in fichier log (cron.log).

Voici un exemple de mon crontab :
0 * * * * /usr/bin/php /home/www/prestashop/modules/amazon/functions/import.php?cron_token=177fc4016dbe487325bbb8239768cf24&context_key=&cron=1&lang=fr&europe=1 >> /home/logs/cron.log 2>&1

Mais mon fichier cron.log reste désespérément vide...

Une petite aide serait la bienvenue.
Merci
Titre: Re : Logs pour tâches cron
Posté par: Superbegood le 26 Mai 2016 à 08:12:54
Bonjour,
J'ai essayé plusieurs synthaxe mais toujours pareil, mon cron.log reste vide...
0 * * * * /usr/bin/php /home/www/prestashop/modules/amazon/functions/import.php?cron_token=177fc4016dbe487325bbb8239768cf24&context_key=&cron=1&lang=fr&europe=1 >> /home/logs/cron.log 2>&10 * * * * php -f /home/www/prestashop/modules/amazon/functions/import.php?cron_token=177fc4016dbe487325bbb8239768cf24&context_key=&cron=1&lang=fr&europe=1 >> /home/logs/cron.log 2>&10 * * * * wget http://*****.fr/modules/amazon/functions/import.php?cron_token=177fc4016dbe487325bbb8239768cf24&context_key=&cron=1&lang=fr&europe=1 >> /home/logs/cron.log 2>&1Merci de votre aide
Titre: Re : Logs pour tâches cron
Posté par: Sellig33 le 26 Mai 2016 à 11:59:33
Bonjour,

essaye
*/1 * * * * /usr/bin/php /home/www/prestashop/modules/amazon/functions/import.php?cron_token=177fc4016dbe487325bbb8239768cf24&context_key=&cron=1&lang=fr&europe=1 >> /home/logs/cron.log 2>&1
déjà voir si toutes les minutes il s'execute

Gilles
Titre: Re : Logs pour tâches cron
Posté par: Superbegood le 26 Mai 2016 à 12:49:07
Bonjour Gilles et merci pour ton retour.
J'ai tout viré et ai mis ces lignes :
MAILTO=****@free.fr
*/1 * * * * touch /home/www/fichier.txt >> /home/test_logs/cron.log 2>&1
Le fichier.txt est bien créé mais pas de mail et le fichier cron.log reste vide...

Titre: Re : Logs pour tâches cron
Posté par: Superbegood le 26 Mai 2016 à 13:03:46
Le fichier log se créé bien mais reste vide...
Ne serait-ce pas les arguments de l'url qui bloque ?
Titre: Re : Logs pour tâches cron
Posté par: Sellig33 le 26 Mai 2016 à 17:18:18
Bonjour,

La commande touch creer un fichier vide mêmle si l'on peux recupere un code de retour.

pour ton essai fait

1/* * * * * date >> /home/test_logs/cron.log 2>&1
tu devrais retrouver le résultat dans ton fichier cron.log toutes les minutes

il faut que la commande utilisé retourne une valeur printable pour quelle soit transcrite dans le fichier.

une fois le test valide vérifie ta commande ;-)

Gilles

Titre: Re : Logs pour tâches cron
Posté par: Superbegood le 26 Mai 2016 à 17:33:50
Je crois avoir trouvé.
L'url ci-dessous est l'adresse du gestionnaire de cron (190 tâches) de mon Prestashop.

Cette tâche renvoie dans le log le code html...
0 * * * * curl "http://sports-fela.fr/admin372r9ryl5/index.php?controller=AdminCronJobs&token=bbe390d2956fdde5ab6f3d8418fd9b72" >> /home/test_logs/cron.log 2>&1Et celle là me renvoi pas grand chose
0 * * * * wget 'http://sports-fela.fr/admin372r9ryl5/index.php?controller=AdminCronJobs&token=bbe390d2956fdde5ab6f3d8418fd9b72' >> /home/test_logs/cron.log 2>&1
En fait, je souhaiterais savoir si les différentes tâches se sont bien déroulées et connaître les erreurs.
Titre: Re : Logs pour tâches cron
Posté par: Jean. le 30 Mai 2016 à 14:47:52
Il faut bien penser à quoter (mettre entre " ou ') les URLs car elles contiennt parfois le signe & ou $ qui sont interpretés directement par le shell.

Le & signifiant exécuter la commande en arrière plan, le reste de la commande n'est pas passé correctement :
$ echo Mauvais http://url/?param=un&param2
Mauvais http://url/?param=un
param2 : commande introuvable

$ echo "Bon http://url/?param=un&param2"
Bon http://url/?param=un&param2


Pour ce qui est de l'exécution d'URLs en crontab, wget et curl n'ont pas la même fonction première :

Il est donc en général plus logique d'utiliser curl que wget pour accéder à une URL, sauf si vous désirez télécharger son contenu vers un fichier (wget URL -O fichierdesortie).
Le switch "-s" de curl permet de ne pas renvoyer le contenu de la page en sortie standard et s'il est utilisé avec le switch "-S", les erreurs seulement sont affichées mais pas si la page est retournée en code 200 (success), pratique pour ne récupérer la sortie qu'en cas de problème.

wget renvoie par défaut sur la sortie d'erreur (stderr) les informations de connexion au serveur et la vitesse/durée de l'opération, ce qui n'est en général pas voulu.
Il est possible d'utiliser le switch "-nv" pour un mode non verbeux qui ne renvoie qu'une ligne de log avec la date, l'URL et le fichier de destination ou le switch "-q" pour ne rien afficher.