设置crontab不起作用,但crontab -l通过PHP文件

时间:2014-05-21 09:50:16

标签: php crontab cron-task

我想使用PHP文件设置一个cron作业,但不知道问题在我的进程中会发生什么。

当我写下面(在PHP文件中并在浏览器上执行它)时,它会显示结果。 (它列出了所有cron作业)

echo shell_exec('crontab -l');

但是当我写下这行时,它没有设置任何cron工作:

echo shell_exec('crontab /home/testsite/public_html/crons/crons.txt');

但如果我在CentOS Dedicated Server上通过puTTY运行相同的命令( crontab /home/testsite/public_html/crons/crons.txt ),那么它会从crons.txt更新crons列表文件。

我也试过传递 -u ,正如我在几个stackoverflow问题上看到的那样:

echo shell_exec('crontab -u testsite /home/testsite/public_html/crons/crons.txt');

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我不确定您到底想要做什么,而您尝试更改crontab的方式也不是最好的方法。让我告诉你我将如何做到这一点:

首先,通过输入PHP脚本来获取执行PHP时的用户:

echo get_current_user();

根据您使用的cron软件(我使用anacron,就像我猜的大多数其他ppl一样),你可以使用cron config目录并为你写一个具有写访问权限的文件:

touch /etc/cron.d/testsite
chown <user from above>:<user(=group) from above> /etc/cron.d/testsite

使用PHP,您可以立即直接读取和写入该文件(file_get_contents(); file_put_contents()),crontab 将立即使用它。

相关问题