tache cron en php

tache cron en php - PHP - Programmation

Marsh Posté le 26-03-2006 à 15:38:43    

ou trouver un exemple simple de lancement automatique de programme php sous linux ? (par exemple supprimer tous les fichiers d'un repertoire de mon serveur web tous les jours à 12H00)

Reply

Marsh Posté le 26-03-2006 à 15:38:43   

Reply

Marsh Posté le 26-03-2006 à 16:28:32    

tu fais juste crontab -u monuserdunet -e
et là tu rentres :
 
12 00 * * * php /var/chemindemonscriptphp.php
 

Reply

Marsh Posté le 26-03-2006 à 16:40:15    

mouins, 'fin bon, faire un script php pour ça, je sais pas si ça vaut le coup :D
 

Code :
  1. 12 00 * * * rm /monrepertoire_ou_je_veux_tout_virer/*


ça marche aussi [:joce]


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 26-03-2006 à 17:22:38    

un petit "rm -f" serait mieux, car sinon le script risque de ne pas fonctionner car il attends la confirmation de l'utilisateur ...

Reply

Marsh Posté le 26-03-2006 à 17:28:45    

j'ai copié la ligne suivante dans mon /etc/crontab :
17 00 * * *  /usr/bin/php5  /home/monuser/www/monscript.php
il ne se passa rien à 17h00 !!
 
 

Reply

Marsh Posté le 26-03-2006 à 17:43:33    

c'est bien dans /etc/crontab que je dois ecrire ma ligne ?
est ce que le script va se déclencher quand je suis loggé en "monuser" ?

Reply

Marsh Posté le 26-03-2006 à 17:47:54    

si tu veux être sûr qu'il se déclenche, fait un crontab -e en étant logué en root comme ça, il fera ce qu'il veut.

Reply

Marsh Posté le 26-03-2006 à 17:56:12    

ok mais y a t'il moyen d'écrire avec autre chose que vi, cet éditeur me met les nerfs !!!

Reply

Marsh Posté le 26-03-2006 à 19:11:16    

Bah j'en sais rien, quand tu fais crontab -e, c'est vim par défaut, je n'ai jamais cherché à le changer, c'est pas le truc où on va tous les jours de toutes façons.

Reply

Marsh Posté le 26-03-2006 à 20:33:44    

Avec une mandrake, j ai ça dans mon crantab:

Code :
  1. SHELL=/bin/bash
  2. PATH=/sbin:/bin:/usr/sbin:/usr/bin
  3. MAILTO=root
  4. HOME=/
  5. # run-parts
  6. 01 * * * * root nice -n 19 run-parts /etc/cron.hourly
  7. 02 4 * * * root nice -n 19 run-parts /etc/cron.daily
  8. 22 4 * * 0 root nice -n 19 run-parts /etc/cron.weekly
  9. 42 4 1 * * root nice -n 19 run-parts /etc/cron.monthly
  10. #rss
  11. 01,16,31,46 * * * * root nice -n 19 run-parts /etc/cron.rss


 
La ligne:
01,16,31,46 * * * * root nice -n 19 run-parts /etc/cron.rss
lance le script /etc/cron.rss tous les quarts d heures pour récupérer un flux rss.
 
Aucune idée de ce qu est le script ``run-parts`` de la mandrake. ``nice -n 19`` lance le script avec la plus basse priorité.
 
Tu peut éditer le crontab avec n importe quel éditeur texte.
 
les champs sont:
              minute         0-59
              hour           0-23
              day of month   1-31
              month          1-12 (or names, see below)
              day of week    0-7 (0 or 7 is Sun, or use names)
              user
              command args ...
 
man 8 crontab pour le format de fichier de cron.

Reply

Marsh Posté le 26-03-2006 à 20:33:44   

Reply

Marsh Posté le 26-03-2006 à 21:33:16    

oui, j'ai la mandriva 2006
mais si je mets
21 32 * * * monuser nice -n 19 php5 /home/monuser/www/script.php
ça marche toujours pas !!!

Reply

Marsh Posté le 26-03-2006 à 21:56:55    

21 32 * * * monuser nice -n 19 /bin/php /home/monuser/www/script.php

Reply

Marsh Posté le 26-03-2006 à 21:57:30    

which php
ou:
which php5
pour connaître le répertoire d installation de php

Reply

Marsh Posté le 28-03-2006 à 16:17:40    

Excusez moi  
je voudrais justement faire la meme chose mais mon apache est sous Windows 2000 Serveur
 
Moi ce que je veux faire c'est supprimer les sessions obsolete  
J'ai une base ou je stock l'id de session ainsi que le dernier time() de visite  
Un cron permettant de lancer une page php en local me servirai bien car jai justement une page de function qui supprime cela.
Ce script est incorporé en include dans la page Index.php mais faut que quelqu'un se connecte hors si personne ne se connecte aucune session obsolete ne sera supprimer
 
Donc est possible sous Windows de faire un CRON ?
 
Sinon je ferai un bete tache planifier en lancant une page web le probleme c'est qu'elle ne se fermera pas cette page web :(

Reply

Marsh Posté le 28-03-2006 à 16:49:28    

wamdk a écrit :

oui, j'ai la mandriva 2006
mais si je mets
21 32 * * * monuser nice -n 19 php5 /home/monuser/www/script.php
ça marche toujours pas !!!


 
euh, nargy t'as filé le truc déjà, lis man 5 crontab également.
Là, tu demandes à ton script de s'exécuter tout les jours à 32h21 ...

Reply

Marsh Posté le 28-03-2006 à 17:04:33    

> Sinon je ferai un bete tache planifier en lancant une page web le probleme c'est qu'elle ne se fermera pas cette page web :(
 
Ben il me semble que tu as un planificateur de tâches système. mais il me semble aussi qu il n est pas présent sur tous les windoz (lesquels?) et qu il faut explicitement le sélectionner à l installation...

Reply

Marsh Posté le 31-03-2006 à 11:45:57    

nargy a écrit :

which php
ou:
which php5
pour connaître le répertoire d installation de php


 
 
which:no php5 in (/sbin:/usr/sbin:/bin;/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin)
which:no php5 in (/sbin:/usr/sbin:/bin;/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin)
 
que faire ??? ou est mon php ??

Reply

Marsh Posté le 31-03-2006 à 11:56:03    

which php

Reply

Marsh Posté le 31-03-2006 à 11:56:31    

ça métonnais aussi qu il laurai appelé php5..!?

Reply

Marsh Posté le 31-03-2006 à 12:03:56    

which:no php in (/sbin:/usr/sbin:/bin;/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin)
vois comment je suis dégouté :ouch:


Message édité par wamdk le 31-03-2006 à 12:05:13
Reply

Marsh Posté le 31-03-2006 à 12:09:11    

... et pourtant mes programmes php et mon serveur web semblent fonctionner normalement !!!

Reply

Marsh Posté le 31-03-2006 à 12:15:33    

he ouais! pour php5 je ne suis pas sûr, mais en ce qui concerne php4 il faut compiler une version spéciale de php pour avoir lexecutable php, sinon il n y a que le module serveur.
Selon ta distribution, tu a peut être une version précompilée de l executable.

Reply

Marsh Posté le 31-03-2006 à 12:31:48    

ma version est php 5.0.4-1 avec apache 2.0.54-13
(mandriva 2006)
que puis je faire alors stp ???

Reply

Marsh Posté le 31-03-2006 à 12:38:58    

wamdk a écrit :

ma version est php 5.0.4-1 avec apache 2.0.54-13
(mandriva 2006)
que puis je faire alors stp ???


 
vive les bugs  :whistle: de mémoire j'en connais deja 2 :D


---------------
CPU-Z | Timespy | Mes bd
Reply

Marsh Posté le 31-03-2006 à 12:40:34    

avec mandriva, tu as un panneau de configuration avec un gestionnaire de logiciels, tu peut le lancer soit depuis KDE/Gnome, soit en ligne de commande avec rpmdrake.
 
Dans cet utilitaire tu tapes: /usr/bin/php
et tu recherche ``dans les nom de fichiers``
il te proposera tous les paquetages contenant l executable php, choisis alors la dernière version de php-cgi et installe. ça devrai aller.

Reply

Marsh Posté le 31-03-2006 à 12:42:04    

rem: si tu n a pas configuré urpmi, tu trouvera surement quelquechose sur rpmfind.net

Reply

Marsh Posté le 31-03-2006 à 13:28:18    

j'ai installé le package php-cgi-5.0.4-9.3.2006mdk, c'est tout ce que j'ai trouvé, parce qu'avec /usr/bin/php, je n'avais aucune réponse.
bah, toujours pas de réponse aux which.

Reply

Marsh Posté le 31-03-2006 à 13:34:21    

tu n'as pas un package php-cli par hazzard ?


---------------
CPU-Z | Timespy | Mes bd
Reply

Marsh Posté le 31-03-2006 à 13:34:35    

wamdk a écrit :

j'ai installé le package php-cgi-5.0.4-9.3.2006mdk, c'est tout ce que j'ai trouvé, parce qu'avec /usr/bin/php, je n'avais aucune réponse.
bah, toujours pas de réponse aux which.


chope les sources de php, compile le et op, en 30min, c'est fait. Tu sera exactement où il est...
Le plus dur dans l'install, je pense que c'est les fichiers de config apache, il faut bien faire ce qui est ecris, et dans l'ordre...


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 31-03-2006 à 13:38:23    

yes, j'ai installe php-cli et j'obtiens /usr/bin/php...je vais retester mon cron

Reply

Marsh Posté le 31-03-2006 à 14:03:38    

alors voila
1/ je mets :
00 14 * * * monuser nice -n 19 /usr/bin/php /home/monuser/www/script.php
dans mon /etc/crontab
 
2/je redémarre le service cron
3/je reteste
4/rien ne se passe
 

Reply

Marsh Posté le 31-03-2006 à 14:21:17    

ca aurait du se declencher à 14h00 non ?

Reply

Marsh Posté le 31-03-2006 à 14:21:55    

quand tu lance a la main ton /usr/bin/php /home/monuser/www/script.php  ça fait quoi ?
 
et on edite pas un fichier crontab, on execute crontab -e


---------------
CPU-Z | Timespy | Mes bd
Reply

Marsh Posté le 31-03-2006 à 14:36:17    

> et on edite pas un fichier crontab, on execute crontab -e
:lol: si si, on édite

Reply

Marsh Posté le 31-03-2006 à 14:38:17    

donc faut faire un /etc/init.d/cron reload juste apres :D

Message cité 1 fois
Message édité par chaced le 31-03-2006 à 14:38:36

---------------
CPU-Z | Timespy | Mes bd
Reply

Marsh Posté le 31-03-2006 à 14:40:15    

[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
 
mon programme efface des repertoires et leur contenu, il fonctionne parfaitement quand je le lance depuis mon navigateur !
 

Reply

Marsh Posté le 31-03-2006 à 14:42:35    

> /etc/init.d/cron reload juste apre/etc/init.d/cron reload juste apres
 
man cron:

Citation :


Additionally, cron checks each minute to see if its  spool  directory's
       modtime  (or  the  modtime on /etc/crontab) has changed, and if it has,
       cron will then examine the modtime on all  crontabs  and  reload  those
       which have changed.  Thus cron need not be restarted whenever a crontab
       file is modified.


 

Reply

Marsh Posté le 31-03-2006 à 14:42:41    

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


---------------
CPU-Z | Timespy | Mes bd
Reply

Marsh Posté le 31-03-2006 à 14:44:39    

chaced a écrit :

donc faut faire un /etc/init.d/cron reload juste apres :D


 
je suis sûr que redemarrer le service cron est équivalent non ?

Reply

Marsh Posté le 31-03-2006 à 14:45:37    

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

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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