IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

crontab et PHP 4.4.2 (cli)


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 206
    Points : 81
    Points
    81
    Par défaut crontab et PHP 4.4.2 (cli)
    Bonjour à tous,

    J'ai un petit soucis.
    Je suis sous linux et en faisant php -v j'ai :
    En faisant whereis php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    php: /etc/php /usr/local/bin/php /usr/local/lib/php /usr/local/lib/php.ini /opt/lampp/bin/php
    J'ai un script qui met à jour une table dans une base de données oracle, que j'appelerai monscript.php

    Quand je tape la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    php /chemin/de/mon/monscript.php
    la table est mise à jour

    Quand je modifie crontab pour ajouter la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    */30 * * * * /chemin/de/mon/monscript.php
    Rien ne se passe.

    Je vous pose la question, car j'ai fait une recherche developpez et google, il y a quelques sujets similaires, mais pas de réponse précise, mise à part, vous n'avez pas cli installé.

    Est ce que c'est pas plutot que j'ai 2 apache qui tournent en meme temps (apache et lampp)

    Dernière précision, monscript.php commence comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #!/usr/local/bin/php
    <?php
    script
    ?>

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 206
    Points : 81
    Points
    81
    Par défaut
    J'ai modifier le script pour annoncer une nouvelle option dans le script php
    monscript.php ressmble maintenant à ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #!/usr/local/bin/php -q
    <?php
    script
    ?>
    et le crontab à ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    */30 * * * * php /chemin/de/mon/monscript.php
    J'ai rajouté l'option "-q" mais je ne sais pas à quoi ca sert, il ne figure pas dans

  3. #3
    Membre averti Avatar de alceste
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 318
    Points : 356
    Points
    356
    Par défaut
    si ça ne fonctionne pas, essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #!/usr/bin/env php
    <?php
    //code
    ?>
    et aussi de taper ça dans le shell:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    chmod +x tonfichier.php
    pour le rendre exécutable et l'utliser de la sorte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ./tonfichier.php
    ou
    /path/to/tonfichier.php

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 206
    Points : 81
    Points
    81
    Par défaut
    Pas mieux avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #!/usr/bin/env php
    <?php
    //code
    ?>
    J'avais déjà rendu mon script executable

  5. #5
    Membre averti Avatar de alceste
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 318
    Points : 356
    Points
    356
    Par défaut
    ben, test de le lancer comme un exécutable à la main, ensuite si ça ne fonctionne pas avec le cron, ben ça vient du cron, cherche pas plus loin

    d'ailleurs, copie nous la ligne crontab exacte

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 206
    Points : 81
    Points
    81
    Par défaut
    Alors comme je l'ai mis dans mon premier post,

    si j'execute mon script directement dans la console de cette manière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /chemin/de/mon/monscript.php
    mon script est bien executé (ca veut dire que le test du script comme un executable fonctionne)

    Maintenant, les lignes exactes qui sont dans mon cron et je l'avais mis aussi au début, c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    */30 * * * * /chemin/de/mon/monscript.php
    Ca veut dire que je veux l'executer toutes les 30 min

    Je pense qu'on ne peut pas jeter la faute au cron entièrement, je pense que c'est entre le cron qui appelle le script php. Il y a une perte d'info et je pense que la commande php n'est plus reconnu dans le shebang

  7. #7
    Membre averti Avatar de alceste
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 318
    Points : 356
    Points
    356
    Par défaut
    non non, c'est bien le cron.. à tous les coups, et je m'en doutais, mais j'ai pas pu le confirmer parce que c'est pas la ligne EXACTE qu'on a là, tu as donné un chemin relatif, or, il lui faut un chemin absolu, partant de la racine /, là tu seras sûr de ton coup

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 206
    Points : 81
    Points
    81
    Par défaut @alceste
    Merci pour tes réponses rapides,

    Je m'excuses, pour executer le script, je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    php /chemin/de/mon/monscript.php
    A quel niveau je n'ai pas mis le chemin absolue?
    Je suis encore novice en linux. Le chemin absolue ne commence pas par "/"

  9. #9
    Membre averti Avatar de alceste
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 318
    Points : 356
    Points
    356
    Par défaut
    oui, je m'excuse, j'avais zappé le / devant chemin.. et si tu enlèves le php, et que tu mets juste /path/to/fichier.php dans le cron ?

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 206
    Points : 81
    Points
    81
    Par défaut
    Pour résumer.
    Mon script est comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #!/usr/local/bin/php -q
    <?php
    script
    ?>
    ce qui fonctionne c'est en ligne de commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    php /chemin/de/mon/monscript.php
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /chemin/de/mon/monscript.php
    si je suis sous le repertoire
    /chemin/de/mon
    fonctionne
    ne fonctionne pas

    le cron ne donne rien
    C'est ca mon problème

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 206
    Points : 81
    Points
    81
    Par défaut c'est encore moi
    Bonjour,

    je me permet réactualiser le sujet pour vous donner un peu l'état d'avancement de mon problème :

    j'ai le programme suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #!/usr/local/bin/php -q
    <?php
    echo 'avant';
    $dbConnexion=OCILogon(BDD_SCHEMA,BDD_PASSWORD, BDD_HOST);
    echo 'après';
     
    reste du programme .....
    ?>
    en tapant directement la commande suivante dans ma console sous linux (redhat)
    le programme s'exécute bien. (dans le log, j'ai avant ET après)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /usr/local/bin/php -f /usr/local/apache/htdocs/www/cron/sessionCleaner.php>/usr/local/apache/htdocs/www/cron/sessionCleaner.log
    par contre quand je mets cette ligne dans le crontab -e,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    */30 * * * * /usr/local/bin/php -f /usr/local/apache/htdocs/www/cron/sessionCleaner.php>/usr/local/apache/htdocs/www/cron/sessionCleaner.log
    dans le log, j'ai juste avant et je n'ai pas la débug pour après????

Discussions similaires

  1. Édition crontab par PHP
    Par Sarawyn dans le forum Langage
    Réponses: 2
    Dernier message: 26/02/2010, 15h12
  2. Crontab sous php
    Par gege87270 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 06/02/2008, 15h19
  3. Crontab et PHP
    Par Shenron114 dans le forum Applications et environnements graphiques
    Réponses: 6
    Dernier message: 04/11/2007, 14h25
  4. Crontab et PHP
    Par M1000 dans le forum Linux
    Réponses: 4
    Dernier message: 26/10/2007, 19h41
  5. PHP-cli et dessin de lignes, courbes, etc
    Par samoh dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 23/01/2006, 23h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo