[resolu]tache cron avec webmin

  • Auteur de la discussion Auteur de la discussion casa
  • Date de début Date de début
WRInaute discret
Bonjour

total débutant sur dédié et linux, je n'utilise que Webmin pour le moment;

j'essai de définir une tache cron comme ceci:


Code:
S'exécute en tant que: www-data 	
Nom de la tâche : tache1	
Entrée de la commande:

[-x/usr/bin/php4] && /usr/bin/php4 /var/www/*****/www/***/***.php
et au test j'ai toujours:
"/bin/sh: line 1: tache1: command not found"

Si qqun avait une piste?
casa
 
WRInaute discret
Est ce que tu peux dire de quel linux il s'agit. Ou plutôt je vais dire

Moi je peux t'aider si c'est du Debian et en ligne de commande.
Je veux dire 'vi crontab'. Je me sers de Webmin que pour regarder les fichiers de logs.
 
WRInaute discret
Donc je te dis moi comment je fais après on verra ou tu coince.

Je me connecte avec Putty.

J'édite le fichier /etc/crontab avec vi.
vi /etc/crontab

Il suffit d'ajouter une ligne dans ce fichier.
C'est tout ce qu'il y a faire sous debian.

Ci dessous le texte d'une ligne que j'ai ajouté pour exécuter un script php toutes les heures

0 * * * * vep /usr/local/bin/php /home/web/mon-site/admin/cron_monitoring.php >> /dev/null


vep est ici un utilisateur qui a les droits d'exécuter le script.

Dis moi maintenant à quel endroit tu coinces, si c'est le cas.
 
WRInaute accro
Bonjour,

J'emploie crontab avec Webmin et, pour ce que j'en fais, c'est hyper-simple. Chez moi, c'est en anglais et mon programme est en Perl, mais tu devrais pouvoir adapter facilement.

Voici un exemple :
Execute cron job as manager Active? (*) Yes ( ) No
Command cd /usr/lib/cgi-bin/operations; perl op1.pl orders_test.txt
Input to command

"Command" correspond à la ligne de commande et "Input to command" permet d'entrer des réponses au prompt de l'application (je ne l'utilise pas).

Jean-Luc
 
WRInaute discret
j'ai enfin une solution qui a l'air de marcher:
avec putty
crontab -e
les heures mn jours ect.. plus
Code:
/usr/bin/php4 /var/www/MONSITE/www/MONSCRIPT.php
et ça marche aussi avec webmin:
il faut mettre "/usr/bin/php4 /var/www/MONSITE/www/MONSCRIPT.php"
dans le champs Nom et laisser vide le champs du script
 
Nouveau WRInaute
parametre de script php dans tache cron

Bonjour
est ce que c'est possible de mettre un parametre php dans la commande de la tache cron avec webmin
on pourrait avoir ainsi dans le champ nom :
/usr/bin/php4 /var/www/MONSITE/www/MONSCRIPT.php?param=french

j'ai essayé mais ca ne marche pas

comment faire ?

Merci
 
WRInaute discret
Re: parametre de script php dans tache cron

frenchy371 a dit:
Bonjour
est ce que c'est possible de mettre un parametre php dans la commande de la tache cron

je ne sais pas :(

par contre il est plus simple de faire un script adapté à la tache cron en intégrant la variable "french"

l'exemple ci dessus est ok pour une distribution Debian, donc vérifier que les fichiers php et sites sont bien aux meme endroits que l'exemple.

Entre /usr/bin/php4 / ET /var/www/ il y a un espace

casa
 
WRInaute impliqué
Le plus simple est de mettre directement l'interprêteur PHP dans ton script

Pour cela, édite ton script en rajoutant cette ligne en toute première ligne

Code:
#!/usr/bin/php4 -q

L'option -q permet de supprimer les entêtes HTTP qui sont inutiles en ligne de commande.

Ensuite, exécute cette commande :
Code:
chmod +x /var/www/MONSITE/www/MONSCRIPT.php

Celle-ci rendra ton script exécutable. Il prendra la valeur de l'interprêteur (première ligne) et s'en servira pour s'autoparser.

Si tu veux tu peux même virer l'extention php, qui sert sous linux uniquement à dire à apache quels fichiers ils faut parser. Comme là tu lui indiques en premier ligne, c'est pas la peine de la mettre

Ensuite pour le passage d'argument, comme tu es en ligne de commande tu dois passer par les variables globales $argv et $argc.

$argc est un entier qui contient le nombre de paramètres passés.
$argv est un array contenant chacun des paramètres suivant le format suivant :

./tonscript.php parametre1 parametre2 parametre3

Tu lui passer en paramètre1 une "query string" (id=pouet&page=prout par exemple) mais là c'est à toi de splitter la chaine décemment :)

Dans ton crontab tu n'as plus besoin de faire figurer l'interprêteur PHP.
 
Nouveau WRInaute
Bonjour

Merci pour ton aide

c'est exactement ce qu'il me fallait

une petite précision quand même:

dans argv[0] je retouve :
/usr/bin/php4 /var/www/MONSITE/www/MONSCRIPT.php

dans argv[1] je retrouve :
param1

donc argv ne comporte pas que les paramètres comme je le pensais

en tout cas merci encore

A plus
 
WRInaute impliqué
Vi c'est comme pour n'importe quel programme, par exemple en C++ :

argv[0] : nom du programme
argv[1...N] : 1 à Nième paramètre passé

et argc : nombre de paramètres passés (sans compter le nom du programme)
 
Nouveau WRInaute
Au nom de tous les blaireaux comme moi qui ont eu du mal à trouver leur réponse, je me permets de déterrer ce thread.

Voici la ligne que j'ai mise dans le champ "Commande" de ma tâche CRON (sous Webmin) pour pouvoir passer des paramètres GET dans mon script php :
Code:
/usr/local/php5/bin/php /home/monserveur/www/test.php key1=val1 key=val2 key3=val3
(attention aux espaces)

A partir de là, dans mon fichier test.php, je peux utiliser $_GET['key1] pour obtenir "val1", $_GET['key2] pour...
\o/ 8) \o/


(et si quelqu'un au passage peut indiquer à quoi sert le champ "Entrée de la commande" présent dans l'interface Webmin, ce sera pipou)
 
Discussions similaires
Haut