当前位置: 首页 > 面试题库 >

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

莘昊
2023-03-14
问题内容

是否可以使用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特权。



 类似资料:
  • 当我逻辑删除数据库中代码为“U1”的实体时,我创建了代码为“Ü1”的新实体,出现异常“重复条目”。Hibernate是否有注释来解决此问题? 编辑: 当我插入一个具有相同代码的新实体时,错误如下: 组织。postgresql。util。PSQLException:错误:重复的键值违反唯一约束“country_pkey”详细信息:键(代码)=(AA)已存在。 表格如下:

  • 到目前为止,我们介绍了一些用于在文件中移动和选择区域的方法,现在让我们真正来修改一些文本吧。很显然你可以通过打字的方式来输入字符,但是有另一些方法使删除和处理字符变得更简捷易用。 基本操作 有一些用于基本操作的很酷的快捷键,他们十分易用。这些操作包括整行移动文本,整行复制,以及改变大小写。 ctrl-T 交换光标两边字符的位置 cmd-J 将下一行拼接到当前行的末尾 ctrl-cmd-up, ct

  • 问题内容: 我使用以下crontab记录来每天备份数据库: 我想添加另一个crontab记录,该记录将删除早于一个月的数据库转储。 有什么想法吗? 问题答案: 只需创建另一个cron: 它将查找所有早于30天的备份并将其删除。

  • 问题内容: 我真的是Python新手。我目前正在研究使用python创建HTML文件的任务。我了解如何将HTML文件读入python,然后进行编辑和保存。 上一部分的问题在于,它只是替换了整个HTML文件并将字符串放入write()中。如何编辑文件,同时保持其内容完整。我的意思是,写这样的东西,但在 体内标签 我需要自动在打开和关闭正文标签之间插入链接。 问题答案: 您可能想阅读Beautiful

  • 我的产品需要对用户发送给其他用户的每条消息进行cronjob处理。此cronjob被添加到服务器上的crontab中。一切正常。现在,一旦任务完成,有没有办法从中删除过期的cronjob条目? 由于消息数量巨大,我的 crontab 不断增长,因此我想清理旧的作业条目。任何巧妙的方法来实现它?

  • 我有一个通过ItemsSource属性绑定到ListView的可观察集合。我使用GridView来显示ListView中的项。通过将我的ViewModel中的“IsServiceMode”属性设置为“true”(DataContext为包含ListView的UserControl),我希望将GridViewColumn更改为使用TextBox而不是TextBlock。我将CellTemplates