【问题标题】:How can I set cron job through PHP script如何通过 PHP 脚本设置 cron 作业
【发布时间】:2011-07-05 07:57:43
【问题描述】:

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

【问题讨论】:

  • 我的 PHP 脚本可以在 Linux 上运行。
  • 你问的是在 php 中以编程方式创建一个 cron 作业吗?或者关于创建一个运行你的 php 脚本的 cron 作业?

标签: php cron


【解决方案1】:

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

如果是这样,您只需要使用 php 函数 exec 来发出与在命令行中创建 cron 作业相同的命令。需要注意的是,可能存在权限问题,您必须非常小心在该 exec 函数中放入的内容(您不想将最终用户的输入传递给该函数)。

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • @Marc B,是的,但通常是服务器负责处理 CRON 脚本,而不是 php 本身。也许我解释得不够清楚。