首页 文章

从另一个cron工作创建cron工作

提问于
浏览
0

大家好日子 . 我需要这样做:

  • 创建一个cron作业(这里没问题)

  • cron执行php脚本

  • 如果满足某些条件,我需要使用脚本返回的日期创建另一个cron

我有root权限和一切 . OS是centOS 5.5(甚至认为只要支持crons,我认为它不重要)

更具体地说,我需要一个执行php脚本的cron,它可以从数据库(小时,分钟,秒)获取执行另一个脚本的确切时刻 . 数据库可以随时更新 . 第一份工作每10分钟执行一次 .

2 回答

  • 0

    您只需创建一个 /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);
    
  • 1

    为什么不使用'at'?

    如果我正确理解你,你正在使用cron脚本来检查数据库以执行一次性作业 - 作业执行的日期/时间是在数据库中,如果你有新的一次性要执行的作业,您想要计划它们,但只执行一次 .

    命令at,batch,atq,atrm操纵Linux系统上的批处理队列以执行一次性作业 . 使用“at”计划作业,然后运行,然后自动从“at”假脱机中删除 .

相关问题