服务器之间 crontab 条目的随机化分钟

Vil*_*ila 2 linux puppet cron

我有一套用于我们的服务器的通用木偶配方。木偶管理的文件之一是/etc/crontab包含原始cron.daily,cron.weeklycron.monthly条目。

/etc/crontab这里的公共文件的问题是所有的 cronjobs 在我们所有的服务器中都在完全相同的时间运行。例如,每日备份消耗了我们所有的备份服务器资源,因为所有服务器都在同时提供它。

在服务器之间随机化每天/每周/每月运行的确切分钟数的首选方法是什么,同时仍然保持所有服务器之间的木偶配方通用?

我一直在考虑几种不同的选择:

  • 运行sleep$RANDOM实际工作之前。这样,crontab每个主机中的时间都会相似,但运行每日/每周作业的确切时间会有所不同。即使在同一服务器内部也会有变化(例如,每天的运行间隔可能在 23-25 小时之间变化)。
  • 从主机名计算一个整数值,并以at+“基于主机名的整数”分钟运行所有作业。有点hacky,但可能会工作......
  • 其他一些方法,但什么?

Den*_*ker 5

Puppet 有一个fqdn_rand函数,你可以使用它:

minute => fqdn_rand(60)
Run Code Online (Sandbox Code Playgroud)