nginx – 将cronjob作为www-data运行

前端之家收集整理的这篇文章主要介绍了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作业集中在一个文件中,但每个任务都以所需的用户身份运行(具有适当的权限和属性).

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

希望能帮助到你.

猜你在找的Nginx相关文章