Execution et Crontab

Execution et Crontab - Linux et OS Alternatifs

Marsh Posté le 01-12-2004 à 01:46:30    

salut à tous,
voilà j'ai un soucis avec ma crontab et l'execution des commandes.
 
voila une ligne issus de ma Crontab :

Code :
  1. 1,6,11,16,21,26,31,36,41,46,51,56 * * * * /home/galert/execute /home/galert/mail_massif_traite.php


 
Le but c'est d'executer un script php avec le script suivant :  

Code :
  1. #!/bin/bash
  2. echo $(date +'%Y.%m.%d-%Hh%M') - Execution du script $1   >> /home/webman/log/mail.log
  3. /usr/bin/php4 -d /home/galert/php.ini -f $1 >> /home/webman/log/mail.log


quand je tape en ligne de commande :  
/home/galert/execute /home/galert/mail_massif_traite.php
pas de soucis, le script est executé sans problème.
Mais dans ma crontab, pas l'once d'une execution.
le sujet semble avoir été traité pas mal de fois mais aucune réponse satisfaisante.
 
Extrait de mon SYSLOG :
Dec  1 01:41:01 gpier /USR/SBIN/CRON[20049]: (root) CMD (/home/galert/execute /home/galert/mail_massif_traite.php)
 
Extrait de mon mail.log:
2004.12.01-01h41 - Execution du script /home/galert/mail_massif_traite.php
donc il execute à rori la premire ligne masi pas mon script PHP, le plus important.
 
Je suis preneur de toute piste
merci


Message édité par Machine le 01-12-2004 à 01:47:45
Reply

Marsh Posté le 01-12-2004 à 01:46:30   

Reply

Marsh Posté le 07-12-2004 à 10:04:18    

Avec ce fichier execute :
 
#!/bin/bash
 
echo $(date +'%Y.%m.%d-%Hh%M') - Execution du script $1   >> /home/webman/log/mail.log
echo Debut Execution >> /home/webman/log/mail.log
/usr/bin/php4 -f $1 >> /home/webman/log/mail.log
echo Fin Execution >> /home/webman/log/mail.log
 
j'obtiens bien dans mon fichier /home/webman/log/mail.log
 
"Execution du script .......
Debut Execution
Fin Execution"
 
mais la ligne /usr/bin/php4 -f $1 >> /home/webman/log/mail.log est complètement ignorée.
Savez d'ou ça peux venir ?? Serait un probleme de contexte d'execution ??


Message édité par Machine le 07-12-2004 à 10:05:16
Reply

Marsh Posté le 07-12-2004 à 19:14:05    

Salut,
 
A tout hazard, est-ce qu'au moins la commande doit te retourner une info ?

Reply

Marsh Posté le 07-12-2004 à 19:36:44    

salut,  
en effet elle ne renvoie rien quand elle est executé via le crontab alors qu'elle renvoie quelque chose qd elle est executé en ligne de commande.
je vais chercher pkoi.
merci


Message édité par Machine le 07-12-2004 à 19:37:13
Reply

Marsh Posté le 07-12-2004 à 19:51:25    

C'est vraiment bizarre car tous les chemins sont complets.
 
Essayes avec:
 
1,6,11,16,21,26,31,36,41,46,51,56 * * * * sh /home/galert/execute /home/galert/mail_massif_traite.php

Reply

Marsh Posté le 07-12-2004 à 20:05:56    

Quels sont les droits d'exécution du script ?

Reply

Marsh Posté le 07-12-2004 à 21:18:00    

bon en fait, les scripts sont dans la crontab de root.
le script etait en fait bien lancé mais ne renvoyais rien en effet (merci !) car php4 ne reconnait pas les fonctions mysql et quitte sans rien renvoyer (j'avais desactivé les messages d'erreurs  :pt1cable: le système etant en prod).
 
le probleme est donc que php4 quand il est executé avec la crontab ne reconnait pas les fonctions mysql.
 
j'ai fait un phpinfo() en ligne de commande et un en crontab et voila ce que ca donne :
 
Celui en ligne de commande :
MySQL Support enabled
Active Persistent Links 0
Active Links 0
Client API version 3.23.49
MYSQL_MODULE_TYPE external
MYSQL_SOCKET /var/run/mysqld/mysqld.sock
MYSQL_INCLUDE -I/usr/include/mysql
MYSQL_LIBS -L/usr/lib -lmysqlclient -L/usr/lib -z
 
Celui en crontab :
rien sur mysql evidement.
 
La variable d'environnement PATH est la meme. Je vosi pas quelle difference autre il peut y avoir entre une execution corntab et ligne de commande classique.  :??:


Message édité par Machine le 07-12-2004 à 21:22:08
Reply

Marsh Posté le 07-12-2004 à 23:11:07    

Je pense que c'est une différence au niveau des canaux de sorties. Mais je ne peux pas t'en dire plus...

Reply

Marsh Posté le 08-12-2004 à 14:47:24    

ok bon ca marche, encore un truc à la con
c'est l'argument -c de php4 qui prend non pas un fichier php.ini mais un chemin ou se trouve un php.ini ...
c'etait pourtant ecrit.
merci en tout cas.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed