Problème de configuration php-crontab linux

Fermé
hakimnounous Messages postés 2 Date d'inscription dimanche 28 août 2011 Statut Membre Dernière intervention 29 août 2011 - 29 août 2011 à 07:49
mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 - 30 août 2011 à 02:17
Bonjour à tous,je dois concevoir un programme qui permet d'ajouter une tâche à crontab.

Pour être plus clair je travaille en open source Linux et j'ai une interface web qui demande à l'utilisateur la commande et l'heure à laquelle il veut que cette commande soit exécuter,et une fois ces informations fournies,il clique sur le bouton valider et des instructions php enregistrent la tâche planifiée ainsi sous le fichier crontab.

Quelqu'un peut-il me dire comment ajouter une nouvelle tâche crontab avec php.
Merci d'avance.
A voir également:

3 réponses

mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 7 804
29 août 2011 à 11:01
Le mieux serait de lire la documentation sur cron (et éventuellement anacron) ou son alternative (fcron) pour voir la syntaxe :
http://doc.ubuntu-fr.org/cron
http://doc.ubuntu-fr.org/anacron
http://doc.ubuntu-fr.org/fcron

Note que pour manipuler la crontab, normalement il faut des droits root (administrateur). Il faudra donc sans doute regarder aussi du côté de suphp.
http://doc.ubuntu-fr.org/suphp

Bonne chance
0
hakimnounous Messages postés 2 Date d'inscription dimanche 28 août 2011 Statut Membre Dernière intervention 29 août 2011
29 août 2011 à 16:06
Merci bien cela m'aide à comprendre le syntaxe des fichiers cron mais c'était pas exactement la question.

Je voulais dire comment écrire le code source en langage PHP ou quels sont les commandes php qui renvoient une tâche ou une commande à exécuter à une date précise en l'écrivant dans le fichier crontab.

j'ai bien su que c'est grâce aux fonctions exec() et fwrite () mais je ne sais pas exactemen comment??
0
mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 7 804
Modifié par mamiemando le 30/08/2011 à 02:28
Bah si tu veux ouvrir un fichier il faut utiliser fopen et contrôler le retour pour voir si tout va bien (le fichier peut être créé / modifié, sous entendu les droits sont corrects, le répertoire dans lequel il se trouve existe...).

Si ça a marché (fp !== NULL) tu peux écrire dedans et le fermer quand tu as fini. Tu peux regarder sur php.net pour avoir des exemples :
https://www.php.net/manual/en/function.fopen.php

$filename = "/home/toto/pouet.txt";  
$prenom = "Toto";  
$fp = fopen($filename, "w");  
if ($fp !== NULL) {  
  fprintf($fp, "coucou %s\n", $prenom);  
  fclose($fp)  
}else{  
  echo "Impossible d'ouvrir ".$filename.", vérifiez que le fichier existe et que vous avez des droits suffisants !\n";  
}


Normalement tu édites tes lignes avec la commande crontab -e. Ici on te suggère d'exécuter des commandes du genre "... | crontab -e" mais à vérifier.
https://www.daniweb.com/programming/software-development/threads/166819/how-do-i-edit-crontab-using-a-script

Personnellement je tenterais plutôt un truc du genre basée sur EOF
https://lists.debian.org/debian-policy/1997/12/msg00004.html

Mets par exemple un truc du genre dans un fichier toto.sh

#!/bin/sh  
crontab -e << EOF  
Première ligne à mettre dans ta crontab  
Seconde ligne à mettre dans ta crontab
...
EOF  


Puis depuis php, appelle toto.sh avec exec par exemple :
https://www.php.net/manual/en/function.exec.php

Bonne chance
0