php - 从另一个 cron 作业创建 cron 作业

标签 php linux cron jobs

大家好。我需要这样做:

  • 创建一个 cron 作业(这里没问题)
  • cron 执行 php 脚本
  • 如果满足某些条件,我需要使用脚本返回的日期创建另一个 cron

我有 root 访问权限和一切。 OS 是 centOS 5.5(即使我认为只要支持 crons 也不重要)

更具体地说,我需要一个 cron 来执行一个 php 脚本,该脚本从数据库中获取确切的时间(小时、分钟、秒)来执行另一个脚本。数据库可以随时更新。第一个作业每 10 分钟执行一次。

最佳答案

您可以简单地创建一个 /etc/cron.d/generated crontab 文件,您的脚本将在其中添加生成的条目。

file_put_contents('/etc/cron.d/generated', ' ... entry contents ...', FILE_APPEND');

正如@The MYYN 在他的评论中所建议的那样,at如果您只想执行一次脚本,这也可能是一个很好的解决方案。在 PHP 中,您可以像这样调用它:

system(sprintf('echo %s|at %s',
    escapeshellarg($command),
    escapeshellarg(date('H:i d.m.y', $timestamp))
);

或者像这样:

$fd = popen(sprintf('at %s', escapeshellarg(date('H:i d.m.y', $timestamp))), 'w');
fwrite($fd, $command);
pclose($fd);

关于php - 从另一个 cron 作业创建 cron 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4796071/

相关文章:

php - 'mv' 不是内部或外部命令,也不是可运行的程序或批处理文件

linux - MongoDB无法启动: bind_ip error: bind() failed errno:99 Cannot assign requested address for socket

java - 从文件夹制作jar文件

php - Cron 作业未通过 PHP 脚本运行

php - 使用 Laravel View::share 访问共享数组中的项目

php - codeigniter:我在数据库中有行(就像博客文章、标题、帖子正文等)。有什么方法可以提交表单+保存提交?

php - 带有 Composer 的多个应用程序

linux - top 命令的输出包含奇怪的字符

cron - 如何设置每 45 天的 cron 作业

ruby-on-rails - Cron 作业不执行命令