Auteur Sujet: Logs pour tâches cron  (Lu 1694 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Superbegood

  • Débutant
  • *
  • Messages: 37
    • SWITCHBOARD
Logs pour tâches cron
« 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

Hors ligne Superbegood

  • Débutant
  • *
  • Messages: 37
    • SWITCHBOARD
Re : Logs pour tâches cron
« Réponse #1 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

Hors ligne Sellig33

  • Connaisseur
  • ***
  • Messages: 263
Re : Logs pour tâches cron
« Réponse #2 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

Hors ligne Superbegood

  • Débutant
  • *
  • Messages: 37
    • SWITCHBOARD
Re : Logs pour tâches cron
« Réponse #3 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...


Hors ligne Superbegood

  • Débutant
  • *
  • Messages: 37
    • SWITCHBOARD
Re : Logs pour tâches cron
« Réponse #4 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 ?

Hors ligne Sellig33

  • Connaisseur
  • ***
  • Messages: 263
Re : Logs pour tâches cron
« Réponse #5 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


Hors ligne Superbegood

  • Débutant
  • *
  • Messages: 37
    • SWITCHBOARD
Re : Logs pour tâches cron
« Réponse #6 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.

Hors ligne Jean.

  • Administrateur
  • Débutant
  • *****
  • Messages: 65
Re : Logs pour tâches cron
« Réponse #7 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 :
  • wget sers avant tout à télécharger un fichier, par défaut "wget URL" téléchargera la page dans le répertoire courant
  • curl sers avant tout à acceder à un URL, par défaut "curl URL" renverra sur la sortie standard le contenu de la page

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.