Php 如何使www数据(Apache)在ubuntu中访问root的Crontab?

Php 如何使www数据(Apache)在ubuntu中访问root的Crontab?,php,apache,ubuntu,cron,crontab,Php,Apache,Ubuntu,Cron,Crontab,我想从网页访问根crontab。我如何才能做到这一点。我有一个项目,其中我必须列出网页上的所有作业。然后,如果需要,我们需要编辑配置的crontab作业的时间 请帮我解决这个问题。使用visudo和add `APACHEUSER ALL=NOPASSWD: /usr/bin/crontab` APACHEUSER是apache在www数据或apache下运行的用户 /usr/bin/crontab是crontab的路径,您可以尝试哪个crontab来查找路径 <?php $result

我想从网页访问根crontab。我如何才能做到这一点。我有一个项目,其中我必须列出网页上的所有作业。然后,如果需要,我们需要编辑配置的crontab作业的时间

请帮我解决这个问题。

使用visudo和add

`APACHEUSER  ALL=NOPASSWD: /usr/bin/crontab`
APACHEUSER是apache在www数据或apache下运行的用户 /usr/bin/crontab是crontab的路径,您可以尝试
哪个crontab
来查找路径

<?php
$result = shell_exec('sudo -u root -S crontab -l 2>&1'); // 2>&1 allows you to get stderror
echo $result;

file_put_contents('/tmp/crontab.txt', $result.'* * * * * /path_to_cron'.PHP_EOL);
echo exec('crontab /tmp/crontab.txt');
?

crontab自动运行。你为什么从网页上跑?我的意思是,我想备份每个星期天的mysql数据。所以,我为备份数据库创建了一个脚本。然后,crontab将在每个星期天自动运行。如果你从网页运行,你可以在没有crontab的情况下刷新你的网页。是的,我必须在网页上显示它,因为它代表一个特定的产品。你可以说我是系统管理员,我的老板想要作业运行的轨迹。如果需要,我想更改执行时间@apache目录中的Thihacrontab-l不显示根crontab。在您的右侧,请尝试$result=shell_exec('echo“PASS”| sudo-u root-S crontab-l')@Brain Keith不在shell中工作,它在请求密码。我刚刚在ubuntu 10.04上尝试了这个方法。使用visudo编辑sudo用户添加:PHP_USER ALL=NOPASSWD:/usr/bin/crontab然后您应该能够使用:
$result=shell_exec('sudo-u root-s crontab-l 2>&1');回声$结果