从PHP脚本调整crontab

时间:2019-05-07 15:36:34

标签: php cron

我在HTML中有一组[on / off]按钮,在其中我使用PHP对按下的按钮做出反应。 [On]按钮应该在crontab中添加一行。 [关闭]按钮应删除特定crontab用户的所有条目。

问题:

无法从index.php编辑crontab。

有效的方法:

如果直接从终端发送“ add”和“ remove”脚本,则它们可以工作。这两个按钮都会做出反应,并可以从每个if语句中打印出第一条回声线。

问题的澄清:

为什么index.php无法触发其他php脚本?

Index.php

<!-- Form  -->
<form method="post">
    <input id="button_on" type="submit" name="button_on" value="on">
    <input id="button_off" type="submit" name="button_off" value="off">
</form>

<?php

/**
 * Button logics.
 */

// Coalesce operator. If input is none, add 0.
$button_on  = $_POST["button_on"] ?? 0;
$button_off = $_POST["button_off"] ?? 0;

if(!$button_on == 0) {
    echo "Button [on] pressed!"; // Verify react on button.

    $output2 = shell_exec('php 1_add_crontab_lines.php');
    echo $output2;
}

if(!$button_off == 0) {
    echo "Button [off] pressed!"; // Verify react on button.

    $output3 = shell_exec('php 2_delete_crontab_lines.php');
   echo $output3;
}

?>

<!-- For troubleshooting. -->
<pre>

---------------------------------
Content of [$_POST]
---------------------------------
<?php print_r($_POST) ?>

1_add_crontab_lines.php

<?php

$cronjob = "* * * * *";

$output1 = shell_exec('crontab -l');
file_put_contents('crontab.txt', $output1 . $cronjob.PHP_EOL);

echo exec('crontab -u trader crontab.txt');

2_delete_crontab_lines.php

<?php

echo exec('crontab -r');

0 个答案:

没有答案