criss Asked: 2009-10-17 07:42:45 +0800 CST2009-10-17 07:42:45 +0800 CST 2009-10-17 07:42:45 +0800 CST 太多的 crons - 太多的机器! 772 我有以下问题: 机器太多。 有些机器组共享相同的 cron 配置,有些则没有。 有时,我需要在数百台机器中手动添加一个 crontab 条目。 我总是犯错误,我的BOSS似乎不喜欢…… 希望有一些工具(带有Web界面和gnu)来管理这类事情吗? 谢谢聪明人!!厘米 cron 3 个回答 Voted David Gardner 2009-10-17T07:50:22+08:002009-10-17T07:50:22+08:00 诸如Puppet、Capistrano和CFEngine 之类的配置管理系统是可以执行此操作以及更多功能的工具。 如果您必须为 cron 管理许多机器,那么您可能还必须在这些机器上配置许多其他东西,所以迟早您需要调查的不仅仅是管理 cronjobs... 他们在 Puppet 网站上提供了非常好的教程和文档(请参阅此处),而且设置起来也不会太痛苦。 如果是数百台机器,请尽快启动并运行它们,您会想知道没有它们您是如何应对的(即使是简单的事情,比如将 cronjobs 推送到许多机器上)! Chad Huneycutt 2009-10-17T07:48:32+08:002009-10-17T07:48:32+08:00 使用像 puppet(或 cfengine、bcfg2 等)这样的配置管理工具,您可以从一个集中位置管理比 crontab 更多的东西。 Best Answer user23312 2009-10-19T16:47:31+08:002009-10-19T16:47:31+08:00 答案是自动化(cfengine/puppet/bcfg2/chef/others)。但除非你能严格控制它们,否则这些不会真正帮助你。您可以通过两个步骤轻松获得: 让源代码管理存储库运行 - 我建议从 subversion 开始 将 scm 与您选择的自动化工具集成 因此,将所有 crons 移入 /etc/cron.d/ 并使用适合您系统的命名方案。其次,将所有 /etc/cron.d/ 目录放入 subversion 并在每台机器上进行本地签出。您将能够手动管理所有内容并拥有更改历史记录,能够跟踪任何没有最新 crontab 的机器等等。然后你可以得到一个自动化软件来为你做这一切。 如果你真的需要一些快速和肮脏的东西,你应该有一个文件,比如说 /etc/cron.d/all-jobs ,部署在所有机器上,并在该文件中决定是否应该运行 cron 基于主机名。就像是: */5 * * * * root [[ $HOSTNAME == 'myhostname' ]] && /usr/bin/job.sh 这不是很有效,但它应该让你的生活更轻松,直到你进行一些自动化。
诸如Puppet、Capistrano和CFEngine 之类的配置管理系统是可以执行此操作以及更多功能的工具。
如果您必须为 cron 管理许多机器,那么您可能还必须在这些机器上配置许多其他东西,所以迟早您需要调查的不仅仅是管理 cronjobs...
他们在 Puppet 网站上提供了非常好的教程和文档(请参阅此处),而且设置起来也不会太痛苦。
如果是数百台机器,请尽快启动并运行它们,您会想知道没有它们您是如何应对的(即使是简单的事情,比如将 cronjobs 推送到许多机器上)!
使用像 puppet(或 cfengine、bcfg2 等)这样的配置管理工具,您可以从一个集中位置管理比 crontab 更多的东西。
答案是自动化(cfengine/puppet/bcfg2/chef/others)。但除非你能严格控制它们,否则这些不会真正帮助你。您可以通过两个步骤轻松获得:
因此,将所有 crons 移入 /etc/cron.d/ 并使用适合您系统的命名方案。其次,将所有 /etc/cron.d/ 目录放入 subversion 并在每台机器上进行本地签出。您将能够手动管理所有内容并拥有更改历史记录,能够跟踪任何没有最新 crontab 的机器等等。然后你可以得到一个自动化软件来为你做这一切。
如果你真的需要一些快速和肮脏的东西,你应该有一个文件,比如说 /etc/cron.d/all-jobs ,部署在所有机器上,并在该文件中决定是否应该运行 cron 基于主机名。就像是:
*/5 * * * * root [[ $HOSTNAME == 'myhostname' ]] && /usr/bin/job.sh
这不是很有效,但它应该让你的生活更轻松,直到你进行一些自动化。