很多时候我们需要linux的任务计划,但是在一些场景中并不是需要特定的时间执行特定的任务,而是随机执行了命令就好。
下面这段crontab任务的意思是:每天9点0分,生成一个1到59秒的随机数,等待这个随机数的秒数后,立即执行bash /test.sh脚本,并且这个脚本的执行时间是在当前时间加上一个2到60分钟的随机数之后。这样的设置可以使得脚本的执行时间有一定的随机性,避免多个任务同时执行造成资源冲突。
0 9 * * * echo 'sleep '$(shuf -i 1-59 -n 1) ';bash /test.sh' | at now + $(shuf -i 2-60 -n 1) min
附:Crontab位置说明
* * * * *
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 6) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
评论一下?