博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20.23 告警系统邮件引擎
阅读量:6002 次
发布时间:2019-06-20

本文共 2227 字,大约阅读时间需要 7 分钟。

hot3.png

20.23 告警系统邮件引擎

mail.sh内容

//其中mail.py内容到这里下载

log=$1t_s=`date +%s`t_s2=`date -d "2 hours ago" +%s`if [ ! -f /tmp/$log ]then    echo $t_s2 > /tmp/$logfit_s2=`tail -1 /tmp/$log|awk '{print $1}'`echo $t_s>>/tmp/$logv=$[$t_s-$t_s2]echo $vif [ $v -gt 3600 ]then    ./mail.py  $1  $2  $3    echo "0" > /tmp/$log.txtelse    if [ ! -f /tmp/$log.txt ]    then        echo "0" > /tmp/$log.txt    fi    nu=`cat /tmp/$log.txt`    nu2=$[$nu+1]    echo $nu2>/tmp/$log.txt    if [ $nu2 -gt 10 ]    then         ./mail.py  $1 "trouble continue 10 min $2" "$3"         echo "0" > /tmp/$log.txt    fifi  

mail.sh脚本解析:

第一次执行: 一步步来……拿项目监控load.sh来说 mark

log=$1##这个$1呢,就是执行mail.sh的第一个参数;上图↑
t_s=`date +%s`  ##这个就是定义当前时间戳t_s2=`date -d "2 hours ago" +%s   ##这个定义2小时以前的时间戳if [ ! -f /tmp/$log ]    ##判断:如果不存在这个文件、则创建 并将2小时前的时间戳写入!then    echo $t_s2 > /tmp/$logfit_s2=`tail -1 /tmp/$log|awk '{print $1}'`    ##t_s2重新赋值,获取文件里面的时间戳!echo $t_s>>/tmp/$log    ##将当前时间戳 追加重定向到文件;v=$[$t_s-$t_s2]    ##运算加减法,并赋值给vecho $vif [ $v -gt 3600 ]    ##判断:如果v大于1小时;则发邮件+重置10分钟邮件收敛值!then    ./mail.py  $1  $2  $3    echo "0" > /tmp/$log.txtelse    ##后面的就不执行了,我也不写了 第一次执行完毕!(因为第一次计算v的值,一定是2小时=7200大于3600,所以只发邮件 并重置收敛值;)

**第二次执行(我们会定义主程序main.sh每分钟执行一次!):**以及后面的执行……

log=$1    ##赋值执行mail.sh的第一个参数;t_s=`date +%s`t_s2=`date -d "2 hours ago" +%s`if [ ! -f /tmp/$log ]      ##第二次执行,这个文件就存在了 判断无效;执行下一步then    echo $t_s2 > /tmp/$logfit_s2=`tail -1 /tmp/$log|awk '{print $1}'`    ##因为第一次执行的时候,将第一次的时间戳追加到了这个文件,所以 这个时间戳是前1分钟的时间戳!echo $t_s>>/tmp/$log    ##再次将当前时间戳追加到该文件;v=$[$t_s-$t_s2]    ##运算减法;echo $vif [ $v -gt 3600 ]    ##此时的v只有1分钟间隔,并未有1小时;该判断不成立 执行elsethen    ./mail.py  $1  $2  $3    echo "0" > /tmp/$log.txtelse    if [ ! -f /tmp/$log.txt ]       ##典型if判断内嵌;判断:如果这个文件不存在,则创建 并写入收敛值0;(这个文件其实在第一次执行的时候就已经创建了,这里再判断一下 以防万一)    ##判断失败;执行下面命令    then        echo "0" > /tmp/$log.txt    fi    nu=`cat /tmp/$log.txt`    ##收敛赋值    nu2=$[$nu+1]     ##收敛值加法;    echo $nu2>/tmp/$log.txt    ##将加法后的收敛值 追加到文件;    if [ $nu2 -gt 10 ]    ##判断:收敛值大于10 则发邮件提醒(就不会一分钟提醒一次了) 并重置收敛值为0;这样就可以10分钟循环一次了!    ##判断失败 则脚本结束;继续等待1分钟的main.sh执行!    then         ./mail.py  $1 "trouble continue 10 min $2" "$3"         echo "0" > /tmp/$log.txt    fifi

20.26 运行告警系统

markmark

转载于:https://my.oschina.net/u/3651233/blog/1540385

你可能感兴趣的文章
vim配置及快捷键
查看>>
unity-Fatal Error GC-GetThreadContext Failed
查看>>
2018省赛赛第一次训练题解和ac代码
查看>>
UWP Composition API - 锁定列的FlexGrid
查看>>
[转载] win10进行端口转发
查看>>
IE7下对某些seajs压缩文件不兼容的解决方法
查看>>
利用JavaScript jQuery实现图片无限循环轮播(不借助于轮播插件)-----转载
查看>>
从零开始搭建vue项目 请求拦截器 响应拦截器
查看>>
ajax实现动态下拉框
查看>>
玩school 学习sql server 查询的网站
查看>>
HDU3257 Hello World!【打印图案+位运算】
查看>>
点击页面其他地方隐藏div
查看>>
Eclipse for Java EE软件操作集锦(二)
查看>>
【大数据】Sqoop学习笔记
查看>>
归并排序
查看>>
转载: 让我们聊聊Erlang的nif中资源的安全释放
查看>>
HDU - 1541 Stars(树状数组)
查看>>
10 tips for working with PureMVC
查看>>
Struts1、WebWork、Struts2介绍
查看>>
如何判断一个非deamon进程是否为后台执行
查看>>