0

嘿,我得到了每 5 分钟运行一次的 crontab,它看起来像这样

*/5    *       *       *       *       blablalba

我怎样才能让它每 5 分 30 秒运行一次?

4

1 回答 1

2

不要使用 Cron,而是让您的脚本使用它作为最后一行重新启动自己:

echo /path/to/script | at now + 330 seconds

或者在时间上更“精确”:计算运行脚本所花费的秒数,并将其从 330 秒(500 万和 30 秒)中取出:

#beginning of script
seconds_at_start=$(date +%s)
....
#end of script
seconds_at_end=$(date +%s)
nb_seconds=$((330 + seconds_at_start  -  seconds_at_end))
echo /path/to/script | at now + $nb_seconds seconds

注意:您可能希望使用bc计算部分来避免遇到奇怪的行为,以防您的 shell 版本无法处理与date +%s...

如果您的 at 版本不允许“现在 + XX 秒”,那么您可以:

compute the number of seconds the script ran for
compute how many seconds to sleep (  sleep N ) to reach the next minute
and then : echo /path/to/script | at now + X minute
于 2013-04-11T15:29:14.540 回答