嘿,我得到了每5分钟运行一次的crontab,看起来像这样
*/5 * * * * blablalba
如何让它每隔5分30秒运行一次?
答案 0 :(得分:2)
不要使用Cron,而是让你的脚本重新启动,使用它作为最后一行:
echo /path/to/script | at now + 330 seconds
或者在时间上更加“精确”:考虑你花费多少秒来运行脚本并从330秒(5分钟和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版本不允许“now + XX second”,那么您可以:
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