nginx – 将cronjob作为www-data运行

我的服务器在Ubuntu 14.04和Nginx上运行.我的问题与Cron有关,我想用文件启动它(crontab) – cron.txt,其内容

* * * * * /usr/bin/PHP /var/www/html/test.PHP >> /var/log/cron.log

如果我使用命令运行它:crontab /var/www/html/cron.txt,它运行正常,脚本test.PHP正在执行.但是当我这样做但使用PHP脚本(通过浏览器执行):exec(‘crontab /var/www/html/cron.txt’);,它不起作用.

通过命令检查当前的cronjob:crontab -l -u www-data,显示文件中的行,但Cron不执行其工作.也许这与一些许可问题有关?因为它只能作为root执行.有没有办法迫使Cron做www-data的任务呢?

最佳答案
我不清楚你想要实现什么目标.据我所知,你需要执行一个作为www-data用户的cron作业.通常(强烈推荐)www-data用户无权访问shell.但是您可以将cron任务作为www-data执行,将您的任务放在root cron中,如下所示:

* * * * * su www-data -s /bin/bash -c "/usr/bin/PHP /YOUR_PATH/task.PHP"

这也是一种干净的方式,因为您将系统的所有cron作业集中在一个文件中,但每个任务都以所需的用户身份运行(具有适当的权限和属性).

您可以更改* * * *参数以调整作业的计划.在我的例子中,它每隔一分钟运行一次.

希望能帮助到你.

相关文章

一、Linux下Nginx的安装 1.去官网 http://nginx.org/download/下载对应的Nginx安装包,推荐使...
一、空格:默认匹配、普通匹配 location / { root /home; } 二、= :精确匹配(表示匹配到 /home/resou...
``` nginx -c 配置文件路径 ``` ``` /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.con...
前言 nginx可所谓是如今最好用的软件级别的负载均衡了。通过nginx的高性能,并发能力强,占用内存下的特...
1.ngnix概念 Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄...
博客园从今天上午就开始报502错误 , 他的原因还不知道 , 暂时先说下我们遇到502的排查情况 最大的可能性...