PHP:如何手动/编程启动cron脚本


PHP: how to manually/programatically kickoff cron scripts

嗨,我正在制作一个cron状态页面,显示cron运行的脚本的所有状态信息。我知道如何构建"显示状态信息",但我需要以下方面的帮助和建议。。。

我需要允许看到状态页面的用户能够手动启动cron脚本。就像一个按钮,它会调用cron来运行一个特定的脚本,比如"现在"。

这可能吗?或者我能找到一个变通办法吗?

请提前提供帮助并表示感谢。

您可以手动执行cron脚本:

exec("cron script here");

如果您愿意,您可以获得可用的cron脚本(未经测试):

$crontab = file_get_contents("path/to/cron");
$cron_jobs = array_filter(explode(PHP_EOL, $crontab), function($cron_job) {
    return $cron_job[0] !== "#"; // Remove comments.
});
$cron_jobs = array_map(function($cron_job) {
    $fields = explode(" ", $cron_job);
    $fields = array_splice($fields, 0, 5); // Get rid of timing information.
    return implode(" ", $fields);
}, $cron_jobs);
$cron_script = $_GET["cron_script"];
if ($cron_script < sizeof($cron_jobs)) {
    exec($cron_jobs[$cron_script]);
}