如何在 crontab 更改时获得警报?

Posted

技术标签:

【中文标题】如何在 crontab 更改时获得警报?【英文标题】:How to get alert when crontab changes? 【发布时间】:2012-11-21 11:49:51 【问题描述】:

我有大约十二台服务器,每台服务器都有 crontab,其中包含 20-50 个 crontab 条目。我最常见的一个进程失败原因是有人在修复或修补期间注释掉了 cron 中的作业,然后忘记取消注释这些作业。

我想做两件事来解决这个问题:

    开始使用我们的计划抑制过程,该过程允许用户在不实际接触 crontab 的情况下抑制计划。没什么神奇的 - 只需触摸专用于该过程的目录中的文件。该进程会在启动时检查该目录。 实施一个进程,如果 crontab 与其备份或 svn 中的当前版本不匹配,将发出警报。

谁能推荐#2 的现有解决方案(在 crontab 更改时发出警报)?

【问题讨论】:

【参考方案1】:

在这种情况下,我建议比较您想要拥有的文件和实际文件的哈希值。

只需编写一个发送电子邮件通知或创建通知文件或任何您想要的小 bashscript 并让此脚本每 x 秒/分钟/小时自动运行一次。

一个可能的脚本可能是

if [[ $(md5sum path/to/crontab.backup | cut -d' ' -f1) == $(md5sum /etc/crontab | cut -d' ' -f1) ]]
then
    # send your notification
fi

这是一个非常简单的解决方案,用于检查自上次备份以来文件是否发生更改。

【讨论】:

谢谢,我考虑过这个实现。我假设它应该运行一个差异,而不是 md5sum;如果 crontab 被删除,从 root 运行以避免丢失检查;并且应该能够从 svn/cvs/git/etc 中提取。但我更喜欢真正可靠的工具,以防我在这里忽略了任何其他有用的功能。 也许您可以使用自内核 2.6.13 以来可用的 inotify 系统。见infoq.com/articles/inotify-linux-file-system-event-monitoring 我没有考虑过 inotify - 这是一个有趣的想法。但在这种情况下,我没有性能或准确性问题 - crontab 的差异不会成为挑战。我认为与 svn 中的条目进行比较可能是我最好的选择。

以上是关于如何在 crontab 更改时获得警报?的主要内容,如果未能解决你的问题,请参考以下文章

如何在使用 jquery 更改 div 内容时发出警报

如何更改系统警报设置文本动态

如何在警报视图中更改文本颜色和配置文本触摸操作?

更改任何模型字段时如何向其他网页发送警报消息

如何在android中的特定时间和日期获得警报?

如何更改材质 UI 警报组件的类型?