php - 使用 PHP 创建、编辑和删除 crontab 作业?

标签 php cron

是否可以使用 PHP 创建、编辑和删除 crontab 作业?

我知道如何列出 Apache 用户当前的 crontab 作业:

$output = shell_exec('crontab -l');
echo $output;

但是如何使用 PHP 添加 cron 作业呢? “crontab -e”只会打开一个文本编辑器,您必须在保存文件之前手动编辑条目。

如何使用 PHP 删除 cron 作业?同样,您必须通过“crontab -e”手动执行此操作。

使用这样的作业字符串:

$job = '0 */2 * * * /usr/bin/php5 /home/user1/work.php';

如何使用 PHP 将其添加到 crontab 作业列表?

最佳答案

crontab命令用法

usage:  crontab [-u user] file
        crontab [-u user] [ -e | -l | -r ]
                (default operation is replace, per 1003.2)
        -e      (edit user's crontab)
        -l      (list user's crontab)
        -r      (delete user's crontab)
        -i      (prompt before deleting user's crontab)

所以,

$output = shell_exec('crontab -l');
file_put_contents('/tmp/crontab.txt', $output.'* * * * * NEW_CRON'.PHP_EOL);
echo exec('crontab /tmp/crontab.txt');

只要用户具有足够的文件写入权限,上述内容即可用于创建和编辑/追加

删除作业:

echo exec('crontab -r');

此外,请注意 apache 是以特定用户身份运行的,并且通常不是 root,这意味着 cron 作业只能为 apache 用户更改,除非为 apache 用户授予 crontab -u 权限。

关于php - 使用 PHP 创建、编辑和删除 crontab 作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18561032/

相关文章:

PHP 脚本流程帮助指南

php - 获取最大值的日期和时间

python - 应用程序引擎(gae)、python、ndb、延迟库或任务链、cron 作业还是全部?

linux - Cron:从 shell 脚本设置 PATH 不起作用

php - 如何使用带有 Doctrine2 扩展的 Versionable 实体?

php - 将数组从 vba 传递到 php Web 服务

单击按钮之前激活 Javascript 函数

linux - 使用 crontab 在固定时间运行我的脚本

Azure函数: make schedule cron a variable in function. json

bash - Forever List 不会显示在 Crontab 输出中,但会在从命令行运行时显示