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

Langage PHP Discussion :

Exec() et commande at


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Par défaut Exec() et commande at
    Bonjour à tous,

    j'aimerais générer des taches planifiées avec PHP.
    Mais je n'arrive pas à exécuter la commande "at" via la fonction exec() puisque la commande "at" (sous Linux) ne s'execute pas en une seule ligne.

    Normalement pour créer une tache planifiée via at on fait:

    at 15:00 (enter)
    >echo test > fichier (enter)
    > ctrl-D

    mais comment faire ça avec exec(). Il y a des retours à la ligne et ce ctrl-D qui posent problème.

    J'ai essayé d'utiliser at dans des scripts shell aussi (pour ensuite les utiliser dans mon exec()) mais, même problème.

    Donc en clair: comment utiliser la commande at dans un script?

    Merci bien.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    tu peux ecrire ta commande AT en une seule ligne.
    regarde l'aide de la commande ou ici :
    http://matthieu.developpez.com/execu...odique/#L3.4.2
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Par défaut
    Bonjour,

    je te remercie de ta réponse, mais ta page concerne la commande at sous des serveur Windows. Il y a bien la possibilité d'utiliser des CRON mais je cherchais à utiliser la commande at.
    En fait j'ai trouvé la solution pour executer cette commande en une seule ligne

    Il suffit de créer/générer un fichier texte avec la tache à executer (echo test > fichier) et ensuite:

    at 08:52 < lefichier

    ce qui executera la tâche ecrite dans le lefichier à 08:52

    Voila, merci pour ton aide. J'en avais besoin urgemment et je commençais un peu à paniquer

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Par défaut
    Rebonjour,

    je déresolve ce sujet parceque mon problème n'est pas résolu.
    En effet, j'arrive à utiliser la commande at en une seule ligne et elle marche très bien (la tache s'exécute au monment voulu). Mais si je l'exécute depuis php (via la fonction exec()) le job est bien créé (bien listé quand je tape "atq") mais n'a pas l'air de marcher le temps voulu. Ma tache d"exemple (qui se trouve dans le fichier "temp") est de créer un fichier (touch fich) mais ça ne marche pas...
    Je me suis penché sur le problème des droits (quand php lance une commande l'utilisateur est "apache"). Donc ma commande ressemble plus à ça maintenant:
    sudo at 14:57 2009-09-22 < temp >> error 2>&1 (le fichier error récupère les réponses et les éventuelles erreurs)

    cette commande est valide si je la lance depuis un autre utilisateur que root en ligne de commande mais depuis php (utilisateur apache) le job se créé et est listé mais mon fichier "fich" n'est jamais créé...

    J'espère être assez clair... et qu'un âme charitable saura me guider

Discussions similaires

  1. EXEC:SQL command EXEC no valid
    Par impactcollege dans le forum Oracle
    Réponses: 2
    Dernier message: 27/01/2010, 10h52
  2. utilisation de {} dans find -exec et commandes imbriquées
    Par pitipoisson dans le forum Shell et commandes GNU
    Réponses: 12
    Dernier message: 07/09/2009, 11h56
  3. [Système] Commande exec() pour commande système
    Par Antho13 dans le forum Langage
    Réponses: 17
    Dernier message: 09/06/2008, 20h44
  4. [Système][Runtime] pb exec une commande ls ds runtime
    Par peppena dans le forum Général Java
    Réponses: 12
    Dernier message: 28/02/2006, 15h46
  5. Réponses: 3
    Dernier message: 22/10/2004, 12h04

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