Crontab,在一段时间内随机执行一次任务

时间:2019-04-11 14:31:53

标签: cron

我想使用cron在上午8点至下午6点之间每3分钟30秒随机执行一次任务。他们可以帮助我解决这个问题。我一直在搜索,但没有设法做到。预先非常感谢。

1 个答案:

答案 0 :(得分:1)

我将通过两种方式解决该问题-根据要求:

  • 如果您是指某个任务可能随机执行或不随机执行,则在上午8点至下午6点之间每3分30秒执行一次,您可以添加一些随机数生成,并在符合某些条件(数字大于x或被y整除)时执行等)
  • 如果您的意思是应该针对从上午8点到下午6点之间每3分钟30秒发生的每个触发器随机执行N次任务,则可以使用随机数指定要执行多少次,然后循环执行直到达到该次数为止处决。

对于cron,您可能会发现this page很有用:)

编辑

这里是评论的后续内容,用例是指我上面提到的第二个案例:

脚本

random_times=$(( ( RANDOM % 10 )  + 1 ))
for i in `seq 1 $random_times`; do bash /path/to/script.sh; done

crontab

*/3 * * * *

请注意,如果使用unix crontab,则没有秒级的粒度,因此每3分钟执行一次。