tache cron en php - PHP - Programmation
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
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 ...
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 !!
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" ?
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.
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 !!!
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.
Marsh Posté le 26-03-2006 à 20:33:44
Avec une mandrake, j ai ça dans mon crantab:
Code :
|
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.
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 !!!
Marsh Posté le 26-03-2006 à 21:56:55
21 32 * * * monuser nice -n 19 /bin/php /home/monuser/www/script.php
Marsh Posté le 26-03-2006 à 21:57:30
ReplyMarsh 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
Marsh Posté le 28-03-2006 à 16:49:28
wamdk a écrit : oui, j'ai la mandriva 2006 |
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 ...
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...
Marsh Posté le 31-03-2006 à 11:45:57
nargy a écrit : which php |
which:no php5 in (/sbinusr/sbin
bin;/usr/bin
usr/X11R6/bin
usr/local/bin
usr/local/sbin)
which:no php5 in (/sbinusr/sbin
bin;/usr/bin
usr/X11R6/bin
usr/local/bin
usr/local/sbin)
que faire ??? ou est mon php ??
Marsh Posté le 31-03-2006 à 12:03:56
which:no php in (/sbinusr/sbin
bin;/usr/bin
usr/X11R6/bin
usr/local/bin
usr/local/sbin)
vois comment je suis dégouté
Marsh Posté le 31-03-2006 à 12:09:11
... et pourtant mes programmes php et mon serveur web semblent fonctionner normalement !!!
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.
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 ???
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 |
vive les bugs de mémoire j'en connais deja 2
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.
Marsh Posté le 31-03-2006 à 12:42:04
rem: si tu n a pas configuré urpmi, tu trouvera surement quelquechose sur rpmfind.net
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.
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. |
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...
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
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
Marsh Posté le 31-03-2006 à 14:36:17
> et on edite pas un fichier crontab, on execute crontab -e si si, on édite
Marsh Posté le 31-03-2006 à 14:38:17
donc faut faire un /etc/init.d/cron reload juste apres
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 !
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 : |
Marsh Posté le 31-03-2006 à 14:44:39
chaced a écrit : donc faut faire un /etc/init.d/cron reload juste apres |
je suis sûr que redemarrer le service cron est équivalent non ?
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/:
ça te donnera peut être une idée du problème
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)