Question

Je souhaite disposer d'une interface Web pour contrôler le moment d'appeler un script PHP. Dans cette interface, je veux pouvoir définir certaines heures ou plages dans lesquelles un script sera appelé. Ces informations seront stockées dans une base de données. Lorsque je clique sur Enregistrer, je souhaite le faire lire toutes les heures planifiées dans la base de données, puis le formater et l'écrire dans une crontab pour un travail cron. Est-il possible que PHP modifie un fichier crontab?

Était-ce utile?

La solution

Je créerais un "cron_runner.php". Un script qui s'exécute toutes les minutes lit les données cron et les exécute en conséquence. Cela ressemble à une réinvention de la roue, mais au moins vous n’avez aucun problème avec les autorisations de fichiers.

Autres conseils

Cela devrait être possible, mais vous avez besoin que PHP dispose des droits nécessaires pour accéder à la 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.

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 tâches cron pour chaque utilisateur à l'aide de la structure suivante:

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

En utilisant ces informations, vous pouvez modifier le fichier texte correspondant à l'utilisateur pour lequel vous souhaitez définir le nouveau cron.

Sachez que la modification de fichiers système peut être dangereuse et que vous devez être extrêmement prudent. Votre application aura également besoin de privilèges supplémentaires pour modifier ces fichiers.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top