大家好。我需要这样做:
- 创建一个 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/