在 ubuntu 16.04 和 PHP 7.0 中为 PHP 脚本设置 cronjob

在 ubuntu 16.04 和 PHP 7.0 中为 PHP 脚本设置 cronjob

我想在 ubuntu 16.04 中为 PHP 脚本设置一个 cronjob,这让我很疯狂。

我在终端输入此命令

$ crontab -e

然后我选择 ubuntu 推荐的 nano 编辑器。然后我在其中输入下面一行。然后我按 control+C,它要求按 Y/N 保存。我按 Y 和 F2 关闭。

* */2 * * * root php /var/www/html/script.php

其他尝试是,

* */2 * * * /var/www/html/script.php
* */2 * * * root /var/www/html/script.php

之后我使用以下命令重新启动 cron。

sudo /etc/init.d/cron restart

然后我检查 crontab 列表,crontab -l它说没有为 root 用户设置 cron 作业。

我尝试使用上述其中一行直接在 cron.hourly / cron.d 目录中创建一个 crontab.txt 文件。

我试过很多论坛,都说crontab -e 在 cron 目录中输入或创建 crontab 文件。但都帮不上忙。我真是百思不得其解。

在 ubuntu 16.04 和 php 版本 7.0 中为 php 脚本创建 cronjob 的正确方法是什么

答案1

crontab -e不应该有root指定用户名的部分(crontab -e已经编辑特定用户的 crontab)。

如果您想以 root 身份运行,请执行sudo crontab -e并使用:

* */2 * * * php /var/www/html/script.php

或者创建一个包含以下内容的文件/etc/cron.d

* */2 * * * root php /var/www/html/script.php

答案2

Crontab 的使用方法如下:当前用户可以省略crontab -u <username> -e.-u <username>部分。如果要将其用于 root 用户,可以使用sudo crontab -e。然后输入计划安排* */2 * * *,行中的最后一个参数是运行脚本的行。完成后,crontab 会输出您是否已成功安装作业的输出。您需要考虑最后一个参数的一些事项。

  1. 您是否安装了 php-cli?如果没有,php 将无法通过命令行运行。(sudo apt-get install php7-cli
  2. 安装 php-cli 后,请确保 crontab 找到 php 可执行文件。crontab 不一定具有相同的 $PATH。which php在 crontab 中输入并使用完整路径* */2 * * * /usr/bin/php /var/www/html/script.php。它/usr/bin应该在 crontab 的路径中。此步骤可能不需要,但不会造成任何影响。

Apache 与您的 crontab 脚本没有任何关系,因为在这种情况下,php 脚本是从命令行运行的。如果您的脚本依赖于一些无法在命令行中访问的 apache 相关数据,则 PHP 脚本可能会出现问题。

相关内容