PHP生成一个crontab

PHP生成一个crontab,php,cron,crontab,Php,Cron,Crontab,我希望有一个web界面来控制何时调用PHP脚本。在这个界面中,我希望能够设置脚本调用的特定时间或范围。该信息将存储在数据库中。当我点击save时,我想让它从数据库中读取所有预定时间,然后格式化它并将其写入crontab以获得cron作业。有没有办法让PHP修改crontab文件?这应该是可能的,但您需要PHP拥有访问用户crontab或从命令行执行“crontab”的必要权限。在共享托管环境中,情况通常不是这样。我会创建一个“cron_runner.php”脚本,它每分钟运行一次,读取cron数

我希望有一个web界面来控制何时调用PHP脚本。在这个界面中,我希望能够设置脚本调用的特定时间或范围。该信息将存储在数据库中。当我点击save时,我想让它从数据库中读取所有预定时间,然后格式化它并将其写入crontab以获得cron作业。有没有办法让PHP修改crontab文件?

这应该是可能的,但您需要PHP拥有访问用户crontab或从命令行执行“crontab”的必要权限。在共享托管环境中,情况通常不是这样。

我会创建一个“cron_runner.php”脚本,它每分钟运行一次,读取cron数据并相应地运行它们。这感觉就像是重新发明轮子,但至少您在文件权限方面没有问题。

实际上,您可以像操作文本文件一样简单地操作cron作业。你必须小心不要刹车

cron守护进程使用以下结构为每个用户保存cronjobs:

/var
   /spool
        /cron
            /crontabs
                /root
                /user1
                /user2
                ..
                /user5
使用此信息,您可以修改与要为其设置新cron的用户对应的文本文件


请注意,修改系统文件可能会很危险,您应该非常小心。您的应用程序还需要一些额外的权限来修改这些文件。

另一种方法可能是拥有多个“cron\u runner”文件;一个设置为每分钟执行一次,一个设置为每15分钟运行一次,一个设置为每小时运行一次,等等。这样,您就不需要太多的逻辑来决定要运行哪些脚本,而且一分钟的cron文件执行时间超过60秒的风险也更小。不过,只有在需要运行大量脚本时才有用。此外,它限制您选择一个可用的计时器,而不是设置自己的计时器。