Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3123 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

tache cron en php

n°1336358
nargy
Posté le 31-03-2006 à 14:45:37  profilanswer
 

Reprise du message précédent :
wamdk> en tant que root, examine les fichiers de log qui se trouvent dans /var/log/cron/:

  • errors
  • info
  • warnings


ça te donnera peut être une idée du problème

mood
Publicité
Posté le 31-03-2006 à 14:45:37  profilanswer
 

n°1336359
nargy
Posté le 31-03-2006 à 14:47:18  profilanswer
 

> donc faut faire un /etc/init.d/cron reload juste apres
> je suis sûr que redemarrer le service cron est équivalent non ?
 
vous avez raison d être prudent, mais comme je l ai indiqué plus haut cron n a normalement pas besoin d être redémarré.

n°1336364
chaced
Posté le 31-03-2006 à 14:49:22  profilanswer
 

Quand on quite crontab -e il affiche :  
crontab: installing new crontab
 
il fait quoi au juste ?


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°1336368
nargy
Posté le 31-03-2006 à 14:54:46  profilanswer
 

> il fait quoi au juste ?
il fait comme fdisk: il édite une copie temporaire, et ensuite après confirmation remplace le fichier original.


Message édité par nargy le 31-03-2006 à 14:55:21
n°1336373
nargy
Posté le 31-03-2006 à 14:57:22  profilanswer
 

chaced> moi aussi j'ai été étonné la première fois, mais après tout c'est cron!

n°1336378
chaced
Posté le 31-03-2006 à 15:01:11  profilanswer
 


The  -e  option is used to edit the current crontab using the editor specified by the VISUAL or EDITOR environment variables.  After you exit from
       the editor, the modified crontab will be installed automatically. If neither of the environment variables is  defined,  then  the  default  editor
       /usr/bin/editor is used.


 
Donc il suffit d'aller dans /usr/bin/editor et de mettre son editeur favoris, par exemple nano :)


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°1336382
wamdk
Posté le 31-03-2006 à 15:02:39  profilanswer
 

chaced a écrit :

il te faut la version cli si tu veux l'executer en lignde de commande.


la version cli de quoi ? de php ?
j'ai le package php-cli-5.0.4 déjà installé...il faut autre chose ?

n°1336384
wamdk
Posté le 31-03-2006 à 15:05:27  profilanswer
 

chaced a écrit :

il te faut la version cli si tu veux l'executer en lignde de commande.


la version cli de quoi, de php ?
j'ai déjà le php-cli-5.0.4 installé, il faut autre chose ?

n°1336385
nargy
Posté le 31-03-2006 à 15:06:06  profilanswer
 

Ajouter dans ~/.bash_profile:


export VISUAL=/usr/bin/nano


Ça sert pour dautres programmes.

n°1336386
wamdk
Posté le 31-03-2006 à 15:07:21  profilanswer
 

me faudrait il d'autres pakages que php-cli-5.0.4 ?

mood
Publicité
Posté le 31-03-2006 à 15:07:21  profilanswer
 

n°1336387
nargy
Posté le 31-03-2006 à 15:08:51  profilanswer
 

non c est bon wamdk
 
donnes-nous plutot un extrait de tes logs

n°1336389
chaced
Posté le 31-03-2006 à 15:09:29  profilanswer
 

normalement non, j'utilise fréquament phpcli et il fonctionne direct, je fais meme des démons avec :D


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°1336390
chaced
Posté le 31-03-2006 à 15:10:50  profilanswer
 

Ha oui, essai au lieu d'appeler avec php tonfichier.php de mettre au debut du fichier #!/usr/bin/php
 
puis faire un chmod +x sur ton fichier et de le lancer direct.


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°1336391
nargy
Posté le 31-03-2006 à 15:11:20  profilanswer
 

oui, php-cli est php en commande en ligne
 
php-cgi dépends normalement de php-cli, si tu installe php-cgi avec urpmi tu as les deux.

n°1336397
wamdk
Posté le 31-03-2006 à 15:15:25  profilanswer
 

Mar 31 14:52:35 mamachine crond[5930]: (CRON) STARTUP (fork ok)  
Mar 31 14:54:00 mamachine CROND[5948]: (root) CMD (nice -n 19 /usr/bin/php /home/monuser/www/del.php)  
Mar 31 15:01:00 mamachine CROND[5969]: (root) CMD (nice -n 19 run-parts --report /etc/cron.hourly)  

n°1336404
nargy
Posté le 31-03-2006 à 15:19:33  profilanswer
 

ya rien dans errors/warnings?

n°1336412
nargy
Posté le 31-03-2006 à 15:30:27  profilanswer
 

si ya rien, regarde du côté de ton script:


[root@mamachine monuser]# /usr/bin/php /home/www/del.php
PHP Warning:  PHP Startup: °gð· _ð·: Unable to initialize module
Module compiled with module API=20020429, debug=0, thread-safety=0
PHP    compiled with module API=20041030, debug=0, thread-safety=0
These options need to match
 in Unknown on line 0
fin de nettoyage


C est un peu louche ces warnings, tu doit avoir des modules pas bien installés.

n°1336416
nargy
Posté le 31-03-2006 à 15:31:22  profilanswer
 

> thread-safety=0
pas normal avec apache2

n°1336421
wamdk
Posté le 31-03-2006 à 15:38:05  profilanswer
 

chaced a écrit :

Ha oui, essai au lieu d'appeler avec php tonfichier.php de mettre au debut du fichier #!/usr/bin/php
 
puis faire un chmod +x sur ton fichier et de le lancer direct.


 
oui, ça ça marche, mais quand je planifie, ça marche pas !
faut-il que je laisse #!/usr/bin/php au début du fichier ?

n°1336422
wamdk
Posté le 31-03-2006 à 15:39:40  profilanswer
 

...  
et j'ai rien dans errors/warnings

n°1336442
nargy
Posté le 31-03-2006 à 15:49:58  profilanswer
 

je pige pas... il doit y avoir une erreur si évidente qu'elle m'échappe.

n°1336450
chaced
Posté le 31-03-2006 à 15:58:04  profilanswer
 

wamdk a écrit :

oui, ça ça marche, mais quand je planifie, ça marche pas !
faut-il que je laisse #!/usr/bin/php au début du fichier ?


 
Bien sur, le php cli comprend parfaitement cette commande.


---------------
CPU-Z | Timespy | Mes bd | Mon blog
n°1336453
wamdk
Posté le 31-03-2006 à 16:00:32  profilanswer
 

visiblement, cela semble venir de ma syntaxe dans le fichier crontab :
 
mon dernier essai :
 
 
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
 
# run-parts
01 * * * * root nice -n 19 run-parts --report /etc/cron.hourly
02 4 * * * root nice -n 19 run-parts --report /etc/cron.daily
22 4 * * 0 root nice -n 19 run-parts --report /etc/cron.weekly
42 4 1 * * root nice -n 19 run-parts --report /etc/cron.monthly
 
57 15 * * * /usr/bin/php /home/monuser/www/del.php
 
mais en vain...

n°1336458
wamdk
Posté le 31-03-2006 à 16:04:04  profilanswer
 

nouvel essai, vu que je comprend rien à cette syntaxe :
05 16 * * * root nice -n 19 run-parts --report /usr/bin/php /home/monuser/www/del.php

n°1336459
nargy
Posté le 31-03-2006 à 16:05:32  profilanswer
 

Si tu laisse del.php dans le répertoire /home/monuser/www/del.php (qui a l air d être accessible sur le web) surtout ne met pas le #!/usr/bin/php
 
Si tu as besoin du script dans et au dehors de ton site, crée un fichier del.inc, et deux fichiers del.php: un dans le site, un dans /usr/local/bin
 
Une piste:
le script /home/monuser/www/del.php ne regarde peut être pas dans le bon répertoire. cron le fait normalement démarrer dans $HOME de l utilisateur, c.a.d. /root, mais si del.php efface les fichiers dans le répertoire courant, il efface des fichiers dans /root!
 
tu peut nous donner un extrait de del.php?

n°1336462
nargy
Posté le 31-03-2006 à 16:07:45  profilanswer
 

> run-parts --report /usr/bin/php /home/monuser/www/del.php
 
est un executable mandrake qui lance le script passé en paramètre.


Usage: run-parts [OPTION]... DIRECTORY
  --test          print script names which would run, but don't run them.
  --verbose       print script names before running them.
  --report        print script names if they produce output.
  --umask=UMASK   sets umask to UMASK (octal), default is 022.
  --arg=ARGUMENT  pass ARGUMENT to scripts, use once for each argument.
  --version       output version information and exit.
  --help          display this help and exit.


 

n°1336463
wamdk
Posté le 31-03-2006 à 16:09:08  profilanswer
 

#!/usr/bin/php
<?php
/****************************************************************/
/* Suppression des repertoires et contenus des jours precedents */
/****************************************************************/
 
function del_dir_previousdays( $dir )
{
 // ajout du slash a la fin du chemin s'il n'y est pas
 if( !preg_match( "/^.*\/$/", $dir ) ) $dir .= '/';
 
 // Ouverture du repertoire demande
 $handle = @opendir( $dir );
 
 // si pas d'erreur d'ouverture du dossier on lance le scan
 if( $handle != false )
 {
   
  // Parcours du repertoire
  while( $item = readdir($handle) )
  {
   if($item != "." && $item != ".." )
   {
    $date_dir=intval(substr($item,0,8));
    $date_day=intval(date("Ymd" ));
 
    if( is_dir( $dir.$item ) )
     del_dir_previousdays( $dir.$item );
    else  
    {
     if($date_dir<=$date_day)
      // suppression des fichiers
      unlink( $dir.$item );
    }
   }
  }
 
  // Fermeture du repertoire
  closedir($handle);
 
  if($date_dir<=$date_day && $dir!="./zip/" )
   // suppression des repertoires
   $res = rmdir( $dir );
 }
 else $res = false;
 
 return $res;
}
 
//suppression des dossiers et fichiers des jours precedents
$dir="./zip";
$result=del_dir_previousdays( $dir );
 
?>

n°1336474
nargy
Posté le 31-03-2006 à 16:17:29  profilanswer
 

ben oui, tu supprime les fichiers dans /root/zip:
 
$dir="./zip";
$result=del_dir_previousdays( $dir );
 
change par:
 
$dir="/home/monuser/www/zip";
 
et mets la fonction del_dir_previousdays() dans un .inc à part, ça sera plus organisé.
 
mets le fichier del.php dans /usr/local/bin avec le #!/usr/bin/php, cest réservé pour les scripts locaux.
 
si tu en as besoin sur le site, mets aussi un del.php sans #!/usr/bin/php dans /home/monuser/www/
 
 

n°1336492
nargy
Posté le 31-03-2006 à 16:38:01  profilanswer
 

ça marche?

n°1336594
Andr_8888
Posté le 31-03-2006 à 18:47:12  profilanswer
 

Salut! Peut être il y avait déjà ici une réponse à la question, mais j'écrirai tout...
Cron ne peut pas lancer php script. Pour l'exécution est nécessaire "curl". Il est presque sur chacun webhosting.
Ajoute à cron
 12 1 * * */usr/bin/curl-u username:password http://www.tonsite.com/tonscript.php  
Considérablement : utilise la voie complète (http://blablabla.....).
Encore ici :
http://www.google.com/search?clien [...] 8&oe=utf-8

n°1336596
The-Shadow
T'as été voir dans ton profil?
Posté le 31-03-2006 à 18:50:01  profilanswer
 

Andr_8888 a écrit :

Salut! Peut être il y avait déjà ici une réponse à la question, mais j'écrirai tout...
Cron ne peut pas lancer php script. Pour l'exécution est nécessaire "curl". Il est presque sur chacun webhosting.
Ajoute à cron
 12 1 * * */usr/bin/curl-u username:password http://www.tonsite.com/tonscript.php  
Considérablement : utilise la voie complète (http://blablabla.....).
Encore ici :
http://www.google.com/search?clien [...] 8&oe=utf-8


Euh si, cron peut très bien lancer PHP, sur mon serveur dédié sous Debian, il lance quotidiennement une vingtaine de script PHP.
 

n°1337733
wamdk
Posté le 03-04-2006 à 13:59:05  profilanswer
 

Ca marche finalement Merci à tous pour votre aide.

n°1337801
Sebastien
Posté le 03-04-2006 à 15:05:50  profilanswer
 

Encore heureux que cron puisse lancer des scripts php :o
Bon ton truc marche, sinon tu avais une autre possibilit plus degeux
12 0 * * * wget http://127.0.0.1/del.php > /dev/null


Message édité par Sebastien le 03-04-2006 à 15:07:59
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
tache planifiee php sous windows[java] exécuter une appli java en tache de fond ou service.
[noob] programme en console --> tache de fondaffichage classeur excel dans la barre de tache
Cron et dbi [résolu][perl dédié linux putty]lancer perl en tâche de fond
Affichage d'une fenêtre lors de l'exécution de la tâche...Nouvelle tache automatique
[Question] - Comment lancer un script perl en tache de fondeffectuer une tache pendant une temps definie
Plus de sujets relatifs à : tache cron en php


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)