我想使用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');
有人可以帮忙吗?
答案 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 将立即使用它。