我维护了很多服务器并且有以下需求
- 在给定时间运行一个 unix 进程
- 在启动时运行一个 unix 进程并保持它运行(以防它死掉)
- 禁用正在运行的进程
我现在正在使用 cron,但是在不同的服务器中维护本地 cron 非常耗时。
是否有分布式 cron 类型的机制?将“cron”配置存储在数据库中会很好,这样我就可以通过 Web 界面访问它。
我维护了很多服务器并且有以下需求
我现在正在使用 cron,但是在不同的服务器中维护本地 cron 非常耗时。
是否有分布式 cron 类型的机制?将“cron”配置存储在数据库中会很好,这样我就可以通过 Web 界面访问它。
使用配置管理系统,如Chef或Puppet。让配置管理服务器根据它们的角色向各个节点推送适当的 cron/Upstart/monit/whatever 配置。是的,与手动将 crontab 文件到处喷出相比,设置它可能是一项更多的投资,但您最终将对您试图管理的所有服务器进行集中控制。
对于 cron 更新,您可以将 cron 文件的副本放在 Web 服务器上,并让您的机器根据存储在 Web 服务器上的文件内容更新它们的 cron 文件。这将允许您在一个地方进行 cron 更新。不利的一面是,您所有的计算机都只能像网络服务器一样安全,因为任何可以操纵网络服务器内容的人都可以在您的任何系统上运行任意命令。
利用
cron
利用
inittab
如果由
inittab
-- edit管理inittab
,如果由系统启动 (
/etc/init.d
&/etc/rc[0-6].d
) 管理 -- 使用chkconfig
或service
从
man inittab
要在多系统复制系统中维护这些,我只能想到类似
rsync
. 我不知道像 NIS/YP 这样的东西是否可用。您可能正在寻找更具企业级的解决方案。您可以使用 puppet(一种集中式配置管理软件)来管理您的 cron 作业。这里有一些文档http://docs.puppetlabs.com/references/stable/type.html(在此链接中搜索 cron)。
似乎 ucron 非常符合您的要求。我自己没有试过。http://siag.nu/ucron/也许是什么?