告警系统邮件引擎

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

20.23-20.25 告警系统邮件引擎

创建发邮件的脚本——mail.py

[root@localhost mail]# pwd
/usr/local/sbin/mon/mail[root@localhost mail]# vim mail.py
#!/usr/bin/env python
#-*- coding: UTF-8 -*-
import os,sys
reload(sys)
sys.setdefaultencoding('utf8')
import getopt
import smtplib
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
from  subprocess import *
def sendqqmail(username,password,mailfrom,mailto,subject,content):gserver = 'smtp.163.com'gport = 25try:msg = MIMEText(unicode(content).encode('utf-8'))msg['from'] = mailfrommsg['to'] = mailtomsg['Reply-To'] = mailfrommsg['Subject'] = subjectsmtp = smtplib.SMTP(gserver, gport)smtp.set_debuglevel(0)smtp.ehlo()smtp.login(username,password)smtp.sendmail(mailfrom, mailto, msg.as_string())smtp.close()except Exception,err:print "Send mail failed. Error: %s" % err
def main():to=sys.argv[1]subject=sys.argv[2]content=sys.argv[3]
##定义QQ邮箱的账号和密码,你需要修改成你自己的账号和密码(请不要把真实的用户名和密码放到网上
公开,否则你会死的很惨)sendqqmail('asdgsfsdl@163.com','sdfsd2.','asdgsfsdl@163.com',to,subject,content)
if __name__ == "__main__":main()#####脚本使用说明######
#1. 首先定义好脚本中的邮箱账号和密码
#2. 脚本执行命令为:python mail.py 目标邮箱 "邮件主题" "邮件内容"

创建邮件引擎的配置文件

#本脚本用于做告警收敛
#Written by Adai
log=$1
t_s=`date +%s`
#时间戳1
t_s2=`date -d "2 hours ago" +%s`
#时间戳2(两个小时之前的时间)
#定义该时间戳的目的是保证第一次执行该脚本时v大于一小时
#保证第一次执行的时候能报警
#因为只有发生故障的时候才会执行该脚本,所以第一次执行必须要报警
if [ ! -f /tmp/$log ]
thenecho $t_s2 > /tmp/$log
fi
#创建记录时间戳的日志文件
t_s2=`tail -1 /tmp/$log|awk '{print $1}'`
echo $t_s>>/tmp/$log
v=$[$t_s-$t_s2]
#两个时间戳的间隔时间
echo $v
#计时器:
if [ $v -gt 3600 ]
then
#如果时间间隔大于1小时,则启动报警系统./mail.py  $1  $2  $3echo "0" > /tmp/$log.txt
#$log.txt为计数器文件:
elseif [ ! -f /tmp/$log.txt ]thenecho "0" > /tmp/$log.txtfi
#查看计数器文件中的数字nu=`cat /tmp/$log.txt`nu2=$[$nu+1]echo $nu2>/tmp/$log.txt
#重置$log.txt数值if [ $nu2 -gt 10 ]then
#告警收敛:该故障持续十分钟,开始报警./mail.py  $1 "trouble continue 10 min $2" "$3"echo "0" > /tmp/$log.txt
#告警结束后重新开始计数fi
fi

20.26 运行告警系统

执行告警系统,将告警任务写入计划任务中,每分钟执行一次。

[root@localhost mail]# crontab -e
* * * * * cd /usr/local/sbin/mon/bin; bash main.sh

转载于:https://my.oschina.net/adailinux/blog/1540025

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257442.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【HTTP 2】简介(Introduction)

前情提要 在上一篇文章《【HTTP 2.0】 序言》中,我们简要介绍了 HTTP 2 协议的概要和协议状态。 在本篇文章中,我们将会了解到 HTTP 2 协议简介(Introduction)部分的内容。 简介(Introduction) 超文本传输协…

SSD硬盘 全盘安全擦除

此文From http://ssd.zol.com.cn/575/5753057.html 在SSD固态硬盘的使用过程中,部分用户可能会碰到计算机意外掉电或死机并强行断电后,系统出现异常,扫描SSD后发现坏块,然后一着急一跺脚甚至想返厂维修。 其实掉电后固态硬盘出现坏…

2017敏捷沙滩大会:完美软件,测量持续交付,以及探索未来

在英国康沃尔郡举行的2017敏捷沙滩大会上,数百名演讲者和参与者共聚一堂,探讨敏捷和后敏捷领域软件开发方法有哪些最新进展。本次大会最后一个下午的要点包括:交付团队可以通过拥抱精益、迭代和持续的部署方法更快速地实现业务价值&#xff1…

做fzu oj 1045 做减法学到的sprintf()函数

题目 做题一直输不出答案,于是就上网去百度了这题的解题,发现解答十分的简短,而且其中我看见了平时没见过的函数,sprintf()。 于是就百度sprintf()的使用。 如下: 函数功能:把格式化的数据写入某个字符串 函…

动态内存分配及变量存储类别(第二部分)

5. C语言变量的存储类别和生存期 我们知道,变量是有数据类型的,用以说明它占用多大的内存空间,可以进行什么样的操作。除了数据类型,变量还有一个属性,称为“存储类别”。存储类别就是数据在内存中的存放区域。一个正在…

oracle的em能干什么,转载 解决Oracle的EM登录

转载 解决Oracle的EM登录(2011-03-13 20:53:39)标签:杂谈这几天解决了EM无法登录的问题,顺便也把j数据库程序中常出现的ORA_12518错误解决了,有必要总结一下,我最初遇到的情况是这样的:1. 编写java程序访问oracle数据库…

python 回溯法 子集树模板 系列 —— 1、8 皇后问题

问题 88格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 分析 为了简化问题,考虑到8个皇后不同行,则每一行放置一个皇后,每一行的皇后…

Android实用代码七段(五)

前言 每次分享意味着每次都有进步,本系列以实用为主,欢迎和我分享和推荐好用的代码段~~声明欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com农民伯伯: http://over140.cnblogs.com 正文 1、展开、收起…

ceph Luminous版手动安装零散记录

1.安装必要的依赖包,关防火墙,向/etc/hosts内添加域名等 2.安装ceph 配置yum源 (如果嫌慢,可以配置cachedir/home/yum/$basearch/$releasever和keepcache1两个参数,在第一次安装时将安装包下载到本地做成yum源,给后面的…

C#最简单最完整的webservice实例

我做java,但最近接触crm所以必须研究一下C#中的webservice以备后用,其实就是个新手,哈哈,这个实例是我在参考了网上诸多不完整的例子的情况下,自己摸索完成的。期间遇到过一系列的棘手的问题,经过个人努力终…

51 Nod 1007 正整数分组【类01背包】

1007 正整数分组 基准时间限制:1 秒 空间限制:131072 KB 分值: 10难度:2级算法题将一堆正整数分为2组,要求2组的和相差最小。例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1…

iOS富文本

iOS富文本 背景:前些天突然想做一个笔记本功能,一开始,觉得挺简单的呀,一个UITextView,网络缓存也不干了,直接本地NSUserDefault存储,然后完事了,美工,弄几张好看的图片,…

SQL编程题-----1

首先,题目给出这个数据库表格 要求写出SQL语句使之变成如下表格 解决方法: SELECT t1.Rq,t1.胜,t2.负 FROM //t1和t2是自己命的新表格的名字 (SELECT Rq,COUNT(*) AS 胜 //As 胜意思是输出结果时列名为”胜“FROM testtableWHERE Sh…

六角填数---第五届蓝桥杯

/** 如图【1.png】所看到的六角形中,填入1~12的数字。使得每条直线上的数字之和都同样。图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少?请通过浏览器提交答案。不要填写多余的内容。*/ public class 六角填数 {…

linux命令编写,编写简单的linux命令

8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?又到了周四分享环节,鉴于最近在看linux编程实践,所以就的讲一下如何编写一个简单的who命令。PPTManual PageManual Page 也就是大家常用的m…

linux不登录用户就关机,Linux无法被远程登录;用户的关机, 重启,注销,新增用户,删除用户...

不能使用xshell连接到我的Linux服务器通过再windows的cmd中ping了我的Linux地址,发现网络不通。查看百度发现是因为网络没有选桥接模式,然后选完桥接模式告诉我:然后发现没有虚拟网卡,原因是之前装过vm没有卸载干净,使…

程序员的国庆节如何安排,你想好了吗?

2019独角兽企业重金招聘Python工程师标准>>> 就要国庆放假了,国庆节是旅游的黄金期,同时也是我们买买买的幸福期,作为一名技术开发,除了要安排假期旅游行程外也不要忘记提升自己,准备好学习计划&#xff0c…

微服务实战(一):微服务架构的优势与不足

本文讲的是微服务实战(一):微服务架构的优势与不足,【编者的话】本文来自Nginx官方博客,是微服务系列文章的第一篇,主要探讨了传统的单体式应用的不足,以及微服务架构的优势与挑战。正如作者所说…

linux创建zip+函数,linux+shell基础知识

目录:1.路径:2.进程:3.清屏和退出当前命令操作:4.ls 参数:5.创建目录\文件\复制文件:6.查看文件内容:7.linux通配符:8.grep:9.终止命令:10.搜索文件:11.查看网…

关于浮动float属性和position:absolute属性的区别

最近返回头看了很多书籍,一直在纠结float属性和absolute绝对定位的区别和使用的情况,给大家分享一下自己的心得和体会吧。 1,float属性 float属性意义是让元素拜托独占一行的霸道总裁,成为一个普普通通的人。比如下面这个例子 如图…