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

Shell et commandes GNU Discussion :

Utiliser un shell pour lancer plusieurs programmes PHP


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Par défaut Utiliser un shell pour lancer plusieurs programmes PHP
    Bonjour,

    objectif : lancer plusieurs fichier php sur un serveur (tous les jours à une certaine heure).

    Je ne connais pas le shell. mais j'ai lu que la seule possibilité était de faire un cron lançant un shell qui lui, lancerait plusieurs scripts.
    cron > shell > php + php + php + php

    Pouvez-vous m'aider ? en cherchant un peu il me semble que quelque chose dans le genre de dessous fonctionnerait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #!/bin/bash
     
    CHEMIN-DE-PHP /mon/chemin/du/script_1.php
    CHEMIN-DE-PHP /mon/chemin/du/script_2.php
    CHEMIN-DE-PHP /mon/chemin/du/script_3.php
    Désolé d'avance et merci également

  2. #2
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 349
    Par défaut
    Bonjour,

    Déjà, est-ce que tu sais lancer tes script php à la ligne de commande ?

    Si oui, tu mets les mêmes commande dans un fichier (au format unix, pas dos).
    puis tu prends la valeur de la variable SHELL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ echo $SHELL
    /bin/bash
    Ici dans l'exemple, on a /bin/bash, et donc tu rajoute en premiere ligne et absolument la première ligne de ton fichier shell:
    Pour que cela fonctionne avec la crontab, en général, il faut aussi configurer la variable PATH, donc pour faire simple, tu fais comme pour la variable SHELL ( echo $PATH ) et dans ton fichier après la première ligne mais avant tes commandes, tu rajoutes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PATH=<valeur retournée par la commande echo $PATH>
    Après tu peux avoir d'autre soucis, mais là c'est au cas par cas.

  3. #3
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 288
    Par défaut
    Bonjour

    Rendons à chacun sa fonction:
    • Cron planifie des tâches.
    • Php fabrique une page html.


    Le script que tu proposes n'a pas de sens.

    Il faut utiliser un logiciel qui demande ta page web. Un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    curl "http://www.mon_site.fr/mon_script.php"
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wget "http://www.mon_site.fr/mon_script.php"
    Puis planifier ton cronjob avec Cron.

  4. #4
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    Bonjour,
    Citation Envoyé par PadawanInPerl Voir le message
    en cherchant un peu il me semble que quelque chose dans le genre de dessous fonctionnerait
    et c'est quoi la question ? tu ne peux pas tester tes 3 lignes de codes ? ca ne devrait pas prendre plus de temps que de "rechercher un peu"

    Sinon ,
    - NON, la seule possibilité n'est pas uniquement cron mais c'est sans doute la solution la plus facile.
    - pour lancer un script php en ligne de commande c'est généralement : php -f lenomduscript.php, un shebang est aussi possible
    - rien ne t'oblige a passer par du bash il est aussi possible de faire 3 cron qui appellent directement l'interpréteur php



    @Flodelarab
    Citation Envoyé par Flodelarab Voir le message
    Rendons à chacun sa fonction:
    • Php fabrique une page html.
    php n'est pas obligatoirement lié à html ! il est courant d'utiliser le langage php pour faire des scripts console d'administration de serveur

  5. #5
    Membre éclairé Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Par défaut
    Merci à tous pour votre aide.

    En fait, j'avais testé de lancer plusieurs cron mais il s'écrase les uns les autres... le nouveau écrase l'ancien... je ne sais pas pourquoi.

    en fait j'ai plusieurs scripts php qui sauvegardent des DB. je voulais garder les scripts séparés...

    donc un cron pour chaque script fonctionne pas, c'est pour quoi je cherche une autre solution...

    je vais étudier plus longuement vos retours et voir ce que je peux faire.

    merci à tous,

    je suis encore ouvert à d'autres commentaires ;O)

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Par défaut
    Citation Envoyé par PadawanInPerl Voir le message
    En fait, j'avais testé de lancer plusieurs cron mais il s'écrase les uns les autres... le nouveau écrase l'ancien... je ne sais pas pourquoi.
    Ça veut dire quoi "ils s'écrasent les uns les autres" ?

    Qu'est-ce que tu observes?

  7. #7
    Membre éclairé Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Par défaut
    mon manque de connaissance me faisait faire des bourdes.

    on m'avait appris à créer un crontab avec comme source un fichier texte contenant les commandes.
    Hors j'avais autant de fichier différent que de besoins... donc a chaque nouveau fichier entré, ça écrasé le précédent

    du coup, j'ai fait un fichier avec toutes les commandes et bingo... Quand on connait pas bien

    Merci pour vos messages !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. utilisation api shell pour lancer un programme en passant des paramètres
    Par criche dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 19/05/2012, 09h37
  2. Peut-on utiliser le cron pour lancer un programme Java ?
    Par _LittleFlea_ dans le forum Général Java
    Réponses: 4
    Dernier message: 29/04/2010, 12h13
  3. Réponses: 2
    Dernier message: 27/12/2005, 11h47
  4. Réponses: 5
    Dernier message: 29/11/2005, 17h35

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