分布式cron

我维护许多服务器,并具有以下要求

  1. 在给定的时间运行一个unix进程
  2. 在启动时运行一个unix进程,并保持运行(如果它死了)
  3. 禁用正在运行的进程

我现在正在使用cron,但在不同的服务器上维护本地cron是非常耗时的。

有没有分布式的cron类机制? 这将是很好的“cron”configuration存储在一个分贝,所以我可以通过Web界面访问相同的。

使用像Chef或Puppet这样的configurationpipe理系统 。 让configurationpipe理服务器根据angular色推出适当的cron / Upstart / monit /不pipe什么configuration到各个节点。 是的,这可能比投资crontab文件要花费更多的投资,但是你可以通过一个集中的控制点来pipe理你试图pipe理的所有服务器。

对于cron更新,您可以将cron文件的副本放在Web服务器上,并根据存储在Web服务器上的文件内容更新其cron文件。 这将允许你在一个地方做cron更新。 不利的一面是,所有的计算机只能和Web服务器一样安全,因为任何可以操纵Web服务器内容的人都可以在任何系统上运行任意命令。

  1. 使用cron

  2. 使用inittab

  3. 如果由inittabpipe理 – 编辑inittab
    如果由系统启动pipe理( /etc/init.d ) – 使用chkconfigservice

man inittab

  respawn The process will be restarted whenever it terminates (eg getty). 

为了在多系统复制系统中维护这些,我只能想到像rsync这样的东西。 我不知道NIS / YP是否可以使用。 您可能正在寻找更多的企业级解决scheme。

你可以使用puppet(一个集中的configurationpipe理软件)来pipe理你的cron作业。 这里有一些文档http://docs.puppetlabs.com/references/stable/type.html (在这个链接中searchcron)。

看起来像ucron相当适合你的要求。 我没有自己尝试过。 http://siag.nu/ucron/也许是什么?