首页/系统/Linux 运维命令速查/错峰执行:RANDOM_DELAY 与随机 sleep
定时任务与计划50 条

错峰执行:RANDOM_DELAY 与随机 sleep

几十台机器同一分钟跑同一任务会形成尖峰;anacron 用 RANDOM_DELAY、cron 用 sleep $((RANDOM%N)) 把压力摊开。

Linux 运维命令速查系统更新于 2026-10-12
用途批量任务错峰,削减尖峰
手段RANDOM_DELAY / 随机 sleep / 分散分钟数

cron 随机延迟

cron 随机延迟
# 0-29 分钟随机延迟后执行
0 3 * * * sleep $((RANDOM % 1800)); /opt/app/sync.sh

# 分钟级直接打散(模板化下发时按主机序号错峰)
15 3 * * * /opt/app/sync.sh   # 第一批
25 3 * * * /opt/app/sync.sh   # 第二批

anacron 错峰

anacron 错峰
RANDOM_DELAY=45
1	5	cron.daily	run-parts --report /etc/cron.daily
sleep 放在任务前会影响该行的占用时长;密集型任务建议用 shuf/分片偏移分散到整点前后。

易错点

  • sleep 占着 cron 进程不放:粒度大时不如把分钟数分散配置
  • $RANDOM 是 bash 特性,脚本 shebang 必须是 bash;dash/sh 下为空导致命令错乱

数据来源与参考

  • man 5 anacrontab(RANDOM_DELAY)
  • cronie 文档

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌