在 cron 作业中执行 PHP 脚本

2022-08-30 11:36:27

在我们的 centos6 服务器中。我想以apache用户的身份在cron job中执行php脚本,但不幸的是它不起作用。

这里是crontab(crontab -uapache -e)的版本

24 17 * * * php /opt/test.php

这是“test.php”文件的源代码,它与“apache”用户作为所有者一起工作得很好。

<?php exec( 'touch /opt/test/test.txt');?>

我试图用php的完整路径替换php(/usr/local/php/bin/php),但它也不起作用

提前致谢, 请帮帮我


答案 1

自动化任务:Cron

Cron是Linux / 类Unix计算机操作系统中基于时间的调度服务。Cron 作业用于计划定期执行的命令。您可以设置命令或脚本,这些命令或脚本将在设定的时间重复运行。Cron是Linux或UNIX(如操作系统)中最有用的工具之一。cron 服务(守护程序)在后台运行,并不断检查 /etc/crontab 文件 /etc/cron。/* 目录。它还检查 /var/spool/cron/ 目录。

配置 Cron 任务

在以下示例中,下面显示的 crontab 命令将每隔十分钟自动激活 cron 任务:

*/10 * * * * /usr/bin/php /opt/test.php

在上面的示例中,*/10 * * * * *表示任务应该何时发生。第一个数字表示分钟数 - 在本例中,每“十”分钟一次。其他数字分别表示一周中的小时和日。

* 是一个通配符,意思是“每次”。

首先在命令行中键入以下内容来查找您的 PHP 二进制文件:

whereis php

输出应如下所示:

php: /usr/bin/php /etc/php.ini /etc/php.d /usr/lib64/php /usr/include/php /usr/share/php /usr/share/man/man1/php.1.gz

在命令中正确指定完整路径。

键入以下命令以输入 cronjob:

crontab -e

看看你在crontab得到了什么。

编辑1:

要退出 vim 编辑器而不保存,只需单击:

Shift+:

然后键入q!


答案 2

我有同样的问题...我必须以用户身份运行它。

00 * * * * root /usr/bin/php /var/virtual/hostname.nz/public_html/cronjob.php

推荐