如何通过PHP脚本设置定时任务(cron job)

5
通过PHP脚本如何设置cron任务。

我的PHP脚本将在Linux上运行。 - Simpanoz
1
你是在询问如何在 PHP 中编程创建 Cron 作业,还是如何创建一个运行你的 PHP 脚本的 Cron 作业? - Doug T.
3个回答

12

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

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

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

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


2
你知道如何正常设置 cron 任务吗?(不是从 PHP 中,而是从 bash 脚本或命令行中)。
如果是这样的话,你只需要使用 php 函数 exec 发出相同的命令,就可以创建与命令行中相同的 cron 任务。但要注意的是可能会存在权限问题,你必须非常小心地处理放入 exec 函数中的内容(不要将最终用户的输入传递给该函数)。

0

你不能通过 PHP 脚本设置 CRON 作业,必须在服务器端设置。除非你想通过 system 函数来设置 CRON,否则你无法通过 PHP 设置 CRON。

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


@Marc B,是的,但通常是服务器负责处理CRON脚本,而不是PHP本身。也许我没有解释清楚。 - Czechnology

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接