2009-11-29 8 views
2

Je veux avoir une interface web pour contrôler quand appeler un script PHP. Dans cette interface, je veux être en mesure de définir certaines heures ou plages qu'un script sera appelé. Cette information sera stockée dans un DB. Quand je clique sur Save, je veux que l'on lise toutes les heures planifiées de la base de données, puis formatez-la et écrivez-la dans un crontab pour un travail cron. Existe-t-il un moyen pour que PHP modifie un fichier crontab?PHP générer un crontab

Répondre

8

Je voudrais créer un script "cron_runner.php" qui s'exécute toutes les minutes, lit les données cron et les exécute en conséquence. C'est comme réinventer la roue mais au moins vous n'avez aucun problème avec les permissions de fichiers.

+0

Une alternative pourrait être d'avoir plusieurs fichiers "cron_runner"; Ainsi, vous n'avez pas besoin d'autant de logique pour décider des scripts à exécuter, et il y a moins de risque que votre fichier cron d'une minute prenne plus de temps. que 60 secondes pour exécuter. Seulement utile si vous avez beaucoup de scripts à exécuter, cependant. De plus, il vous limite à choisir l'un des minuteurs disponibles, au lieu de définir le vôtre. – Duroth

2

Cela devrait être possible, mais vous avez besoin de PHP pour avoir les droits nécessaires pour accéder à la commande crontab de l'utilisateur ou pour exécuter "crontab" à partir de la ligne de commande. Dans un environnement d'hébergement partagé, ce n'est généralement pas le cas.

1

En fait, vous pouvez manipuler les tâches cron aussi simplement que des fichiers texte. Vous devez faire attention à ne rien freiner.

Le démon cron enregistre les cronjobs pour chaque utilisateur en utilisant la structure suivante:

/var 
    /spool 
     /cron 
      /crontabs 
       /root 
       /user1 
       /user2 
       .. 
       /user5 

Grâce à ces informations, vous pouvez modifier le fichier texte correspondant à l'utilisateur pour lequel vous souhaitez définir la nouvelle Cron. Sachez que la modification des fichiers système peut être dangereuse et que vous devez faire très attention. Votre application aura également besoin de privilèges supplémentaires pour modifier ces fichiers.