问题描述
我大约有一打服务器,每个服务器都有crontab,其中的crontab条目为20-50个。我最常见的导致流程失败的原因是有人在修复或修补过程中将cron中的作业注释掉,然后忘了取消注释作业。
I've got about a dozen servers that each have crontabs with anywhere from 20-50 crontab entries. My single most common cause of a process failure is someone commenting out jobs in cron during a fix or patch and then forgetting to uncomment the jobs.
我想做有两点可以解决此问题:
I'd like to do two things to solve this:
- 开始使用我们的计划抑制过程,该过程允许用户抑制计划而无需实际触摸crontab。没什么了不起的-只需触摸专用于该过程的目录中的文件即可。该过程会在启动时检查该目录。
- 如果crontab与svn中的备份或当前版本不匹配,则执行一个会发出警报的过程。
任何人都可以推荐现有的#2解决方案(在crontab更改时发出警报)?
Can anyone recommend an existing solution for #2 (alert when crontab changes)?
推荐答案
在这种情况下,我建议比较您要拥有的文件和实际文件的哈希值。
In this case i would suggest to compare hashvalues of the file you want to have and the actual file.
只需编写一个小的bashscript即可发送电子邮件通知或创建通知文件或您想要的任何文件,然后让此脚本每x秒/分钟/小时自动运行一次。
Just write a little bashscript that sends out a emailnotification or creates a notification file or whatever you want and let this script be run automatically every x seconds / minutes / hours.
A可能的脚本可能是
if [[ $(md5sum path/to/crontab.backup | cut -d' ' -f1) == $(md5sum /etc/crontab | cut -d' ' -f1) ]]
then
# send your notification
fi
这是一个非常简单的解决方案,用于检查自上次备份以来文件是否已更改。
This is a very simple solution to check if a file was changed since the last backup was made.
这篇关于crontab更改时如何获得警报?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!