嘿,我得到了每 5 分钟运行一次的 crontab,它看起来像这样
*/5 * * * * blablalba
我怎样才能让它每 5 分 30 秒运行一次?
不要使用 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