在我们的centos 6服务器中,我想以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的完整路径(/usr/local/php/bin/php)替换php,但也不起作用。
4条答案
按热度按时间mwngjboj1#
Cron是Linux/UNIX类计算机操作系统中的一个基于时间的调度服务。Cron作业用于调度命令定期执行。您可以设置命令或脚本,这些命令或脚本将在设定的时间重复运行。Cron是Linux或UNIX类操作系统中最有用的工具之一。Cron服务(守护程序)在后台运行,并不断检查*/etc/crontab * 文件、/etc/cron./目录。它还检查/var/spool/cron/*目录。
配置Cron任务
在以下示例中,下面显示的 * crontab命令 * 将每隔十分钟自动激活cron任务:
在上面的示例中,/10***表示任务应该发生的时间。第一个数字表示 * 分钟 *-在本例中是每"十"分钟。其他数字分别表示 * 小时 、 天 、 月 * 和 * 星期 *。
*
是通配符,表示"每次"*。首先在命令行中键入以下内容,找出 * PHP * 二进制文件:
输出应类似于:
/usr/bin/php/etc/php.ini/etc/php. d/usr/lib64/php/usr/包含/php/usr/共享/php/usr/共享/man/man1/php.1.gz
在命令中正确指定完整路径。
键入以下命令以进入cronjob:
看看你在 * crontab * 里得到了什么。
编辑1:
要退出vim编辑器而不保存,只需点击:
然后键入
q!
nkcskrwz2#
我遇到了同样的问题...我必须以用户身份运行它。
llmtgqce3#
您可能需要以具有执行PHP脚本权限的用户身份运行cron作业。请尝试使用命令
runuser
(man runuser
)以root用户身份执行cron作业。或者创建一个系统crontable并以授权用户身份运行PHP脚本,如@Philip所述。在这篇stackoverflow文章中,我提供了如何使用cron的详细答案。
如何编写一个在每天午夜运行脚本的cron?
8fsztsew4#
我尝试了所有的路径组合,但不工作。可能他们是必要的。
在我的案例中,使用Centos 7时,重新启动或服务器正常工作。