Bonjour,
Tout est dans le titre.
J'ai vu qu'il y avait pas mal de tutos pour planifier une
crontab avec un script PHP, par contre pour at c'est le néant.
Est ce possible ?
Merci d'avance.
Bonjour,
Tout est dans le titre.
J'ai vu qu'il y avait pas mal de tutos pour planifier une
crontab avec un script PHP, par contre pour at c'est le néant.
Est ce possible ?
Merci d'avance.
AMHA si tu lances une AT basique comme si tu lancais un script shell en lancant ton peucheupeu ça doit marcher non ??
j'ai pas testé mais je vois pas pourquoi ça échouerai (sauf si c'est le script qui est moisi bien sur )
Tu veux dire avec la fonction exec() de peucheupeu ?
Dans ce cas ce serait quoi la syntaxe ?
J'ai essayé par ex:
mais ça ne marche pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part exec('at 21:39 touch /var/www/web/site/command/coucou.txt"');
Une idée ?
là il te manque au moins une quotation le "
Code : Sélectionner tout - Visualiser dans une fenêtre à part exec('at 21:39 touch /var/www/web/site/command/coucou.txt"');
tu peux avoir besoin de \" au lieu de " mais en tout cas la méthode semble logique meme en ne connaissant pas PHP
Bonsoir,
En consultant le man de at il semble que la saisie des commande soient interactive sauf en utilisant la syntaxe
Voici un extrait sorti du man :
Code : Sélectionner tout - Visualiser dans une fenêtre à part at <heure/date> -f <fichier>
-f fichier : Lire la commande à exécuter depuis le fichier fichier et non depuis l'entrée standard.
-t heure : Exécuter la commande à l'heure heure, donnée selon le format [[SS]AA]MMJJhhmm[.ss]
Merci pour ces réponses.
Mais pour l'heure je viens de m'apercevoir que même une simple commande comme:
ne fonctionne pas (alors qu'elle marche dans la console).
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo exec('whoami');
Il doit y avoir un problème avec PHP ou les permissions d'Apache.
Si quelqu'un a une piste...
Bonsoir,
Chez moi j'ai ceci pour apache dans /etc/passwd :
Cela n'aurait pas une influence sur le fait de pouvoir exécuter une commande système ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
Chez moi (Ubuntu 12.04) j'ai :
mais je ne vois pas trop ce que ça veut dire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part www-data:x:33:33:www-data:/var/www:/bin/sh
Est qu'il faut donner l'autorisation à www-data via sudoer du style:
?
Code : Sélectionner tout - Visualiser dans une fenêtre à part www-data ALL=(ALL) NOPASSWD: /usr/bin/exec
Je viens de modifier les droits de www-data dans sudoers (juste pour tester) :
Et ça ne marche toujours pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part www-data ALL=NOPASSWD: ALL
Une idée ?
Salut,
As tu regarder dans ton php.ini s'il n'y avait pas un paramètre qui inhibe la commande exec ?
Oui, j'ai déjà épluché le php.ini mais rien ne semble empêcher la commande exec.
Voici ce que dit le log d'erreur quand je lance le script:
La commande exec serait elle absente (pas installée) ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2sh: 1: whoami: not found
je dirais plutot qu'elle utilise pas le path profile et qu'il faut donc que ce soit le sript appelé qui fasse tout ... donc surcharge des différentes variables, controles d'erreurs etc... pour que la commande exec soit ok
En ce qui concerne exec la bonne commande est en fait:
et là ça marche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo exec('/usr/bin/whoami');
Maintenant pour la commande at je suis toujours coincé.
J'ai trouvé une syntaxe qui fonctionne:
où testjob est en fait un simple ficher dans lequel est écrit la commande
Code : Sélectionner tout - Visualiser dans une fenêtre à part exec('/usr/bin/at -f testjob now + 1 minutes');
L'embêtant c'est que je doit utiliser un fichier à chaque fois.
Code : Sélectionner tout - Visualiser dans une fenêtre à part touch /var/www/web/monsite/coucou.txt
Et apparemment ça ne marche pas avec une heure précise (ex 12:24).
J'ai aussi essayé:
mais ça ne fonctionne pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part exec('/usr/bin/at -c "touch /var/www/web/monsite/coucou.txt" now + 1 minutes');
Une idée.. ?
Partager