在我们的centos6服务器中 . 我想在cron job中执行一个php脚本作为apache用户,但不幸的是它不起作用 .
这是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),但它也无法正常工作
在此先感谢,请帮助我
3 回答
自动化任务:Cron
Cron是一种基于时间的调度服务,适用于Linux / Unix类计算机操作系统 . Cron作业用于安排定期执行的命令 . 您可以设置命令或脚本,这些命令或脚本将在设定的时间重复运行 . Cron是Linux或UNIX操作系统中最有用的工具之一 . cron服务(守护程序)在后台运行并不断检查/ etc / crontab文件/etc/cron./*目录 . 它还检查/ var / spool / cron /目录 .
配置Cron任务
在以下示例中,下面显示的crontab命令将每十分钟自动激活一次cron任务:
在上面的示例中,* / 10 * * * *表示任务应该发生的时间 . 第一个数字表示分钟 - 在这种情况下,每隔_729789分钟 . 其他数字分别代表小时,日,月和星期几 .
*
是一个通配符,意思是"every time" .首先输入命令行找出您的PHP二进制文件:
输出应该是这样的:
正确指定命令中的完整路径 .
输入以下命令以输入cronjob:
看看你在crontab中得到了什么 .
编辑1:
要退出vim编辑器而不保存,只需单击:
然后输入
q!
我遇到了同样的问题......我不得不以用户身份运行它 .
您可能需要以具有执行PHP脚本权限的用户身份运行cron作业 . 尝试使用命令
runuser
(man runuser
)以root身份执行cron作业 . 或者创建一个系统crontable并以授权用户身份运行PHP脚本,如@Philip所述 .我在这个stackoverflow帖子中提供了如何使用cron的详细解答 .
How to write a cron that will run a script every day at midnight?