加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

nginx – 将cronjob作为www-data运行

发布时间:2020-12-13 21:16:53 所属栏目:Nginx 来源:网络整理
导读:我的服务器在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.p

我的服务器在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作业集中在一个文件中,但每个任务都以所需的用户身份运行(具有适当的权限和属性).

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

希望能帮助到你.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读