将Cron作业添加到多个服务器

将多个服务器同时添加到新的cron作业或者在多个服务器上自动创buildcron作业的最佳方式是什么?

我打算使用rysnc将bash脚本推送到多个服务器,但是我需要添加一个将运行此脚本的cron作业。

大多数现代Linux发行版都支持/etc/cron.d框架,这将允许使用模块化方法将cron“片段”推送到多个服务器。 这是一个特殊的目录,每分钟扫描一次可用的作业。 您可以将小型cron文件放入目录中。 这是一个比编辑中央或每用户crontab更优雅的方法。

请参阅: /etc/cron.d和/ var / spool / cron之间有什么区别? 有关使用此框架所需的稍微不同的格式的更多信息。

我会创build作业/ cron文件,并将其scp到相关的服务器。 我认为对于这个规模的东西,Puppet或者一个完整的configurationpipe理套件是过度的。

你也可以考虑Ansible,它有cron模块。

木偶有一个cron提供者。 (也可能CFEngine和厨师和其他一些选项 )

它也有一个巧妙的把戏,你可以使用主机名散列错开cron作业的执行,如下所示:

 cron { "run-myscript": command => "/path/to/myscript.sh", minute => inline_template("<%= hostname.hash.abs % 60 %>"), } 

如果您的服务器超过了几十台,或者您认为自己的规模可能会达到这个规模,那么现在就开始进行configurationpipe理是值得的。

对于一个快速而又脏的解决scheme, clusterssh可能会诀窍。 这些问题的长期解决scheme是MCollective , Func , Fabric或Capistrano 。

我会写一个脚本,我会放在一个samba共享,所有我的服务器可以访问,然后我将定义一个相同的cron为每个指向相同的脚本!

应该尝试一个概念certificate,但我认为它可以与共享/var/spool/cron目录(如nfs共享)。 你试过了吗? 我会说这将是简单的方法