2011-02-27 137 views
5

如何通过PHP脚本设置cron作业。如何通过PHP脚本设置cron作业

+0

什么是您的操作系统? – Eray 2011-02-27 18:23:14

+0

我的PHP脚本可以在Linux上运行。 – Simpanoz 2011-02-27 18:27:02

+1

你问在php中以编程方式创建cron作业吗?或者关于创建一个运行你的PHP脚本的cron作业? – 2011-02-27 18:32:28

回答

11

这将添加一个脚本,每天早上9:30运行。

exec('echo -e "`crontab -l`\n30 9 * * * /path/to/script" | crontab -'); 

如果您从Web服务器运行此脚本,您可能会遇到权限问题。为了解决这个问题,我会建议一个不同的方法。

以下是一种可能的解决方案。创建一个需要运行的脚本列表。您可以将其保存在文本文件或数据库中。创建一个脚本来阅读这个列表,并运行它每分钟或每5分钟(使用cronjob)。您的脚本需要足够聪明以决定何时运行脚本列表以及何时退出。

0

您不能通过PHP脚本设置CRON作业,您必须将其设置为服务器端。除非你想通过system函数来完成,否则你不能通过php设置CRON

如果您没有在自己的服务器上运行并使用托管服务,请询问您的托管服务提供商如何设置CRON脚本(如果提供商允许)。

+4

一般来说,PHP脚本在服务器上运行... – 2011-02-27 19:50:47

+0

@Marc B,是的,但它通常是服务器照顾CRON脚本,而不是php _itself_。也许我没有足够清楚地解释自己。 – Czechnology 2011-02-27 19:57:06

2

你知道如何正常设置cron作业吗? (在PHP之外,即从bash脚本或命令行)。

如果是这样,您只需使用php函数exec发出相同的命令,您将不得不在命令行中创建cron作业。一个警告是,可能会有许可问题,并且您必须非常小心您在该exec函数中放置的内容(您不希望将最终用户的输入传递给该函数)。