Problème de configuration php-crontab linux

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.

3 réponses

  1. 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??
    1. Modérateur
      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