将cron设置为5分30秒

时间:2013-04-11 14:18:30

标签: linux cron crontab

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

*/5    *       *       *       *       blablalba

如何让它每隔5分30秒运行一次?

1 个答案:

答案 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