自动告警脚本
最近项目上有这样一个需求:系统中有一个后台服务会不断的生成监控日志,根据系统的运行情况,它每天会在目录/var/alarms下生成一个文件,文件名带有时间戳,其中内容格式如下:
$cat /var/alarms/alarms-20150228130522.csvnode,summary,occurrence,proiorityVIQ002,heartbeat failure,2/12/2015 01:23 AM,criticalVIQ002,packages are rejected,2/12/2015 01:22 AM,majorVIQ002,connection cannot be established,2/11/2015 01:23 AM,mediumVIQ001,packages are rejected,2/11/2015 01:23 AM,warningVIQ001,connection cannot be established,2/09/2015 01:23 AM,medium...
运维团队需要监控这个目录,如果里边的文件发生了变化,就要及时的发送邮件给工程团队解决。我们当然不可能人工的监控该目录,然后编写邮件,再拷贝粘贴,所以需要编写一个脚本来自动化这个任务。
处理方法有两种:
编写一个crontab的任务,每隔五分钟轮询一下,然后编写脚本来探测变化,发送邮件
使用操作系统提供的inotify相关API探测变化,编写脚本发送邮件
不过作为程序员,第二种方法显然更高级一些。另外相对于检测文件变化(对比目录树,检查时间戳,而且还要记录上一次变更的状态等),编写一个发送邮件的脚本要简单得多。
使用inotify
如果在Linux下&#