如何 运行 每 5 小时执行一次 cron 作业

How to run a cron job at every 5 hour interval

如何每 5 小时 运行 一个 Cron 作业?

我试过了

0 */5 * * * /path/to/script/script.sh (Not necessarily a shell script)

但是这个 expression 的问题是它会 运行 每 5 hour 但时钟会在每天午夜 00:00:00 重置。

说明:如果作业在午夜00:00:00执行,则执行时间如下

00:00:00, 05:00:00, 10:00:00, 15:00:00, 20:00:00

20:00:00 之后,作业将在 00:00:00 执行,比指定时间早 1 hour

但我的要求是作业应该 运行 以 5 小时为间隔并且不应在午夜重置

所以如果作业在午夜开始 00:00:00 以下应该是执行顺序。

00:00:00, 05:00:00, 10:00:00, 15:00:00, 20:00:00, (Day 1)
01:00:00, 06:00:00, 11:00:00, 16:00:00, 21:00:00, (Day 2)
02:00:00 ...                                      (Day 3)

如何通过Cron实现以下目标? 任何帮助将不胜感激。

每小时 this forum post on unix.com 运行 一个选项,并添加到您的脚本中:

time_ct=$(cat /tmp/cron_time_ct)
if [ $time_ct -lt 5 ]
   then
     echo "Not yet time"
     time_ct=$((time_ct+1))
     echo $time_ct > /tmp/cron_time_ct
     exit
   else
     time_ct=0
     echo $time_ct > /tmp/cron_time_ct
fi
# rest of your task

我做过类似 "every other monday" 类型的逻辑。 运行每周一执行脚本,并且只允许在脚本中每隔一个执行一次。