-
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.
-
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
-
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 ;)
-
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 ;)