每隔一小时随机运行一个 cron 作业

Use*_*123 2 linux cron ubuntu

我想要一个 cronjob 每隔一小时随机运行一次。(即,如果第一个作业运行 58 分钟,则第二个作业应运行 47 分钟,第三个作业运行 52 分钟,依此类推)但这应该随机运行每个小时。

Ste*_*itt 6

您可以通过定义一个每小时运行一次的作业来实现这一点,并在运行您真正感兴趣的命令之前随机休眠一段时间。在您的 crontab 中:

SHELL=/bin/bash

0 * * * * sleep $((RANDOM*3600/32768)) && command
Run Code Online (Sandbox Code Playgroud)

(您需要指定 shell,以确保它$RANDOM可用。sleep如果不合适,还有其他方法可以获得随机值。)

  • @ user3128796,读取`RANDOM` 给出一个随机选择的0 到32767 之间的整数。将其乘以3600 再除以32768 得到一个0 到3599 之间的整数,并以秒为单位进行解释,给出一个介于零到一小时之间的持续时间. (4认同)