运行 PHP 文件使用 crontab

Running PHP file using crontab

我需要每 1 小时 运行 一个 PHP 文件。

我正在做的是:

sudo crontab -e

(在编辑器中)* 01 * * * /usr/bin/php /var/www/devicecheck.php

但不知何故,它不起作用。该命令在命令行上运行。在此之前,我正在尝试 php /var/www/devicecheck.php

有什么建议吗?

脚本应该有执行权限。给

chmod +x /var/www/devicecheck.php

同时检查 /var/log/syslog 是否有错误。

我让它与 wget 一起工作。您可能必须先安装 wget。之后它将允许您从 cronjob 运行 php 脚本。 语法如下:

 * 01 * * */usr/local/bin/wget "http://localhost/devicecheck.php"

其中/usr/local/bin/wget指向安装wget的目录。 如果您不希望有输出,只需添加“-O /dev/null”,如下所示:

 * 01 * * */usr/local/bin/wget "http://localhost/devicecheck.php" -O /dev/null

也可以在url中传递参数:

 * 01 * * */usr/local/bin/wget "http://localhost/devicecheck.php?task=somevalue" -O /dev/null

要每 1 小时执行一次 devicecheck.php,请尝试以下操作:

方法 A :: 使用 crontab 中的 php 执行脚本

# crontab -e
00 * * * * /usr/bin/php/var/www/devicecheck.php

方法 B:运行 php 脚本使用来自 crontabURL 的

如果您的 php 脚本可以使用 URL 调用,您可以使用 lynx、curl 或 wget 来设置您的 crontab,如下所示。

以下脚本通过使用 lynx 文本浏览器调用 URL 来执行 php 脚本(每小时)。 Lynx 文本浏览器默认以交互模式打开一个URL。但是,如下所示,lynx 命令中的 -dump 选项将 URL 的输出转储到标准输出。

00 * * * * lynx -dump http://www.yourwebsite.com/yourscript.php

以下脚本通过使用 CURL 调用 URL 来执行 php 脚本(每 5 分钟)。默认情况下,curl 在标准输出中显示输出。使用“curl -o”选项,您还可以将脚本的输出转储到临时文件,如下所示。

*/5 * * * * /usr/bin/curl -o temp.txt http://www.yourwebsite.com/yourscript.php

以下脚本通过使用 WGET 调用 URL 来执行 php 脚本(每 10 分钟)。 -q 选项表示完全模式。 “-O temp.txt”表示输出将被发送到临时文件。

*/10 * * * * /usr/bin/wget -q -O temp.txt http://www.yourwebsite.com/yourscript.php

更新::

# chmod a+x /home/username/yourscript.php
# crontab -e
00 * * * * /home/username/yourscript.php