【问题标题】:How to run crontab for every 36 hours如何每 36 小时运行一次 crontab
【发布时间】:2013-07-18 14:41:41
【问题描述】:

我正在使用 php 创建自动 cron 选项卡。我需要在以下时间运行这个 cron 选项卡。

24 小时或 36 小时或 48 小时或 72 小时或 96 小时。

我很困惑在 cron 选项卡中设置 36 小时。

如何设置每 36 小时运行一次的 cronjob?请指教

【问题讨论】:

  • 您必须为不同的时间跨度设置多个作业,所有作业都运行相同的作业。没有办法直接告诉 cron“每 36 小时”,因为 cron 定义中的时间范围最长为 23 小时。

标签: php cron


【解决方案1】:

我认为您不能指定超过 24 小时。

您可以让它每小时运行一次,每次命中时都会增加一个存储在数据库或文件中的 var,然后当该 var 达到 36 时运行脚本并将其重置为 1。

编辑:在同一张纸条上,你可以让它每 12 小时运行一次,并让它增加 12

例如:

$var = (int) file_get_contents('count.txt'); 
$var++;
if($var === 36) {
   //run script
   //update count.txt
}else {
   //update count.txt
   die(); 
}

【讨论】:

  • 好的,感谢您的快速重播。我可以试试这个,我可以更新你
【解决方案2】:

这不是一个很好的解决方案,但是...

将 cron 作业设置为每 12 小时运行一次脚本。在脚本中,添加如下内容:

$hour_of_year = date('z') * 24 + date('H');

if ($hour_of_year % 36 == 0) {
    // RUN THE PROGRAM

} else {
    // DONT RUN THE PROGRAM
}

【讨论】:

  • 好的,感谢您的重播。我可以试试这个,我可以更新你
【解决方案3】:

要安排 cron 作业每 36 小时运行一次,只需使用两个字符串:

0 0 0,3,6,9,12,15,18,21,24,27,30 * *
0 12 1,4,7,10,13,16,19,22,25,28 * *

【讨论】:

  • 不考虑长/短月和闰年的月末结转至下个月。
猜你喜欢
  • 2019-07-31
  • 2019-11-04
  • 2021-09-21
  • 2019-10-13
  • 2012-01-18
  • 1970-01-01
  • 2020-03-05
  • 2019-10-20
  • 1970-01-01
相关资源
最近更新 更多