一尘不染

使用PHP创建,编辑和删除crontab作业?

php

是否可以使用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作业列表中?


阅读 474

收藏
2020-05-26

共1个答案

一尘不染

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特权。

2020-05-26