[resolu]tache cron avec webmin

Discussion dans 'Administration d'un site Web' créé par casa, 9 Novembre 2005.

  1. casa

    casa WRInaute occasionnel

    Inscrit:
    13 Avril 2003
    Messages:
    254
    J'aime reçus:
    0
    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
     
  2. all-black

    all-black WRInaute discret

    Inscrit:
    29 Octobre 2005
    Messages:
    61
    J'aime reçus:
    0
    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.
     
  3. casa

    casa WRInaute occasionnel

    Inscrit:
    13 Avril 2003
    Messages:
    254
    J'aime reçus:
    0
    merci
    c'est une Debian GNU/Linux 3.1
     
  4. all-black

    all-black WRInaute discret

    Inscrit:
    29 Octobre 2005
    Messages:
    61
    J'aime reçus:
    0
    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.
     
  5. jeanluc

    jeanluc WRInaute accro

    Inscrit:
    3 Mai 2004
    Messages:
    3 285
    J'aime reçus:
    0
    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 :
    "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
     
  6. casa

    casa WRInaute occasionnel

    Inscrit:
    13 Avril 2003
    Messages:
    254
    J'aime reçus:
    0
    Merci a vous 2

    j'essaie et vous confirme quand ça marche
    casa
     
  7. casa

    casa WRInaute occasionnel

    Inscrit:
    13 Avril 2003
    Messages:
    254
    J'aime reçus:
    0
    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
     
  8. frenchy371

    frenchy371 Nouveau WRInaute

    Inscrit:
    30 Janvier 2006
    Messages:
    4
    J'aime reçus:
    0
    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
     
  9. casa

    casa WRInaute occasionnel

    Inscrit:
    13 Avril 2003
    Messages:
    254
    J'aime reçus:
    0
    Re: parametre de script php dans 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
     
  10. Bourriquet

    Bourriquet WRInaute impliqué

    Inscrit:
    19 Septembre 2005
    Messages:
    636
    J'aime reçus:
    0
    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.
     
  11. frenchy371

    frenchy371 Nouveau WRInaute

    Inscrit:
    30 Janvier 2006
    Messages:
    4
    J'aime reçus:
    0
    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
     
  12. Bourriquet

    Bourriquet WRInaute impliqué

    Inscrit:
    19 Septembre 2005
    Messages:
    636
    J'aime reçus:
    0
    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)
     
  13. Adhemar

    Adhemar Nouveau WRInaute

    Inscrit:
    9 Juin 2007
    Messages:
    5
    J'aime reçus:
    0
    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)
     
  14. spout

    spout WRInaute accro

    Inscrit:
    14 Mai 2003
    Messages:
    8 665
    J'aime reçus:
    2