3

在我的工作中,我们大量使用 cron 来自动化许多系统管理任务,从备份到报告生成。问题在于,我们的 50 多个 cron 作业系统的复杂性开始因自身的重量而崩溃。让我描述一下我们的设置:

  • 约 15 名开发人员,其中一些负责通过他们的个人 crontab 运行的 cron 作业
  • 30 多台机器,其中一些正在运行 cron 作业,有时由几个人运行
  • 许多 cron 作业没有被记录,他们所有的 stdout 和 stderr 都被传送到 /dev/null (让我懊恼)
  • 一些 cron 作业太嘈杂,吐出大量文本,使来自 cron 的电子邮件难以筛选
  • 大多数 cron 作业(如果它们受到监控)会转到群组电子邮件别名,因此许多人看到与他们无关的消息并习惯于忽略它们
  • 经常 cron 作业失败,我们没有及时注意到
  • 我们的备份系统正在跟踪一些 cron 作业,而另一些则没有。没有源代码控制。
  • 当我们的一台服务器出现故障时,这意味着存储在该机器上用户的 crontab 文件中的任何 cron 作业都不会运行,而且我们没有意识到 cron 作业无法运行

理想情况下,我们需要一个设置或软件系统,其中:

  • 任何开发人员都可以轻松进入并调整/修复 cron-job,而不是将其限制为个人 crontab
  • 对 cron 作业在哪台机器上运行具有灵活性,即使 crontab 以某种方式集中在特定机器上
  • 所有成功的 cron 作业运行都被简洁地记录下来,所以我们知道发生了一些事情
  • 所有错误都被捕获并根据错误消息和 cron 作业报告给相关开发人员的细粒度列表
  • 可以将用户设置为监视某些 cron 作业,无论它们是成功还是失败
  • 用户可以收到一份摘要(电子邮件或网页),详细说明在特定时间窗口内哪些作业失败以及哪些作业成功
  • 使用RRDtool之类的工具记录 cron 作业统计信息(运行时间、退出状态、输出量)以进行分析
    • 健壮性:一台服务器宕机不会破坏整个 cron 作业系统

在网上搜索,我看到一些关于“cron 作业最佳实践”的讨论,但它似乎只解决了我们的一些要求。在对其中一些功能的软件支持方面,似乎有 cronic、shush 和 cronwrap 之类的工具(对不起,我是新用户,仅限于 2 个超链接)。我敢肯定还有更多我想念的。

似乎我可以编写这样的代码,但似乎肯定已经创建了这样的东西。任何关于现有系统/方法的建议,或关于如何构建这样一个系统的指针,将不胜感激。

4

1 回答 1

0

我不是这个主题的专家,但我希望这可以帮助你,我最近听说了这项新技术:

作业调度程序工作负载自动化解决方案以及此作业调度程序软件列表

实际上我对此一无所知,但我认为这个作业调度程序和工作负载自动化软件是用于 SOA 或企业集成架构的企业级作业调度程序,通常可以与 ERP 系统集成。

老实说,我必须承认,我不确定这项技术是否适合您的需求,您必须对此主题进行深入研究,我希望此回复扩大您的“解决方案全景”。

于 2012-12-04T23:59:22.943 回答