首页 文章

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

提问于
浏览
0

我想使用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

    我不确定你到底想要做什么,而你试图改变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 will immediately use it.

相关问题