centos 7 keepalived故障邮件通知实战(附Python邮件发送脚本)

#####################     sendmail.py  begin     #####################

#!/usr/bin/python -W

# -*- coding: UTF-8 -*-





from email.mime.multipart import MIMEMultipart

from email.mime.base import MIMEBase

from email.mime.text import MIMEText

from email.utils import COMMASPACE,formatdate

from email import encoders





import os





#server['name'], server['user'], server['passwd']

def send_mail(server, fro, to, subject, text, files=[]): 

    assert type(server) == dict 

    assert type(to) == list 

    assert type(files) == list 

 

    msg = MIMEMultipart() 

    msg['From'] = fro 

    msg['Subject'] = subject 

    msg['To'] = COMMASPACE.join(to) #COMMASPACE==', ' 

    msg['Date'] = formatdate(localtime=True) 

    msg.attach(MIMEText(text)) 

 

    for file in files: 

        part = MIMEBase('application', 'octet-stream') #'octet-stream': binary data 

        part.set_payload(open(file, 'rb'.read())) 

        encoders.encode_base64(part) 

        part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(file)) 

        msg.attach(part) 

 

    import smtplib 

    smtp = smtplib.SMTP(server['name']) 

    smtp.login(server['user'], server['passwd']) 

    smtp.sendmail(fro, to, msg.as_string()) 

    smtp.close()





send_mail({'name':'smtp.163.com','user':'erp2','passwd':'xxxxxxxxxx'}, 'erp2@163.com', ['99923309@qq.com'], '服务器故障转移', 'keepalived故障转移通知',[])  





#####################     sendmail.py  end     #####################





linux centos7.2实际测试可用,放在:/etc/keepalived/sendmail.py





keepalived配置如下:

在 /etc/keepalived/keepalived.conf 中增加:





vrrp_sync_group VG_1 {

    group {

        VI_1

    }

    notify_master /etc/keepalived/sendmail.py

}





重启keepalived服务即可

centos 7 keepalived故障邮件通知实战(附Python邮件发送脚本)的更多相关文章

  1. Jenkins进阶系列之——01使用email-ext替换Jenkins的默认邮件通知

    1 简述 众所周知,Jenkins默认提供了一个邮件通知,能在构建失败.构建不稳定等状态后发送邮件.但是它本身有很多局限性,比如它的邮件通知无法提供详细的邮件内容.无法定义发送邮件的格式.无法定义灵活 ...

  2. Jenkins系列之四——设置邮件通知

    Jenkins持续集成,当我们自动打包部署完,我们可以发送一封邮件给相关的负责人.现介绍一下如何在Jenkins中配置实现邮件通知. 在Jenkins中配置实现邮件通知,Jenkins提供了两种方式的 ...

  3. Jenkins之邮件通知

    Jenkins默认有一个邮件通知功能,但功能比较单一,能自定义的东西很少,一般使用Extended E-mail Notification插件来发送邮件,EXT Email插件功能比较多,但设置也比较 ...

  4. Ossec 安装并配置邮件通知

    Ossec 安装并配置邮件通知 目录 Ossec 安装并配置邮件通知 1. 介绍 2. 软硬件环境 3. 安装步骤 3.1 Server 3.2 Agent 3.3 配置邮件通知 4. 参考资料 1. ...

  5. haproxy/nginx+keepalived负载均衡 双机热备 邮件报警 实战及常见问题

    Haproxy 做http和tcp反向代理和负载均衡keepalived 为两台 Haproxy 服务器做高可用/主备切换.nginx   为内网服务器做正向代理,如果业务需求有变化,也可以部分替代 ...

  6. 高可用服务之Keepalived邮件通知配置

    上一篇博客我们了解了keepalived的架构以及安装.VIP的配置和高可用相关配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13634755.html: ...

  7. CentOS 下的邮件通知

    利用Shell邮件通知 echo "邮件内容" |mail -s 邮件主题 收件人地址 echo "This is Test mail."|mail -s &q ...

  8. LabVIEW系列——生产现场故障邮件通知

    第一步.建立邮件服务器,winmail做邮件服务器是个不错的选择.不过在使用前需要注册. 第二步.创建修改域名.这里创建的域名不是真正的域名,只能用于局域网内.假设:lhy.com.cn 第三步.创建 ...

  9. java实现对服务器的自动巡检邮件通知

    1.需求 之前一直是手动的巡检,然后贴图,最近服务器数量大增,有点忙不过来了.因为一直用的java,对shell脚本不是特别了解,所以这次用java写了个小项目,实现对多服务器,多任务的巡检,巡检结果 ...

随机推荐

  1. 2018.08.30 NOIP模拟 wall(模拟)

    [问题描述] 万里长城是中国强大的标志,长城在古代的用途主要用于快速传递军事消息和抵御 外敌,在长城上的烽火台即可以作为藏兵的堡垒有可以来点燃狼烟传递消息. 现在有一段 万里长城,一共有 N 个烽火台 ...

  2. 2018.08.20 bzoj1143: [CTSC2008]祭祀river(最长反链)

    传送门 一道简单的求最长反链. 反链简单来说就是一个点集,里面任选两个点u,v都保证从u出发到不了v且v出发到不了u. 链简单来说就是一个点集,里面任选两个点u,v都保证从u出发可以到达v或者v出发可 ...

  3. 云服务器vps

    0.云计算时代,是一个很时髦的词,人们常常谈起,挂在嘴边.其实云计算通俗点就是电脑托管到了远端的机房,然后不用去买配件主机,是摸不到的,但通过网络远程连接,就可以使用云服务器的资源和功能(搭建网站,测 ...

  4. HDU 2136 Largest prime factor (素数打表。。。)

    题意:给你一个数,让你求它的最大因子在素数表的位置. 析:看起来挺简单的题,可是我却WA了一晚上,后来终于明白了,这个第一层循环不是到平方根, 这个题和判断素数不一样,只要明白了这一点,就很简单了. ...

  5. PS各个工具的字母快捷键和英文全名

    选框-Marquee(M) 移动-move(V) 套索-Lasso(L) 魔棒-Wand(W) 喷枪-injection lance (J) 画笔-Brush (B) 铅笔-pencil(N) 橡皮图 ...

  6. [可用]android hack

    msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.237 LPORT=4444 R > shell.apk service ...

  7. web service 项目 和 普通 web项目 的 区别

    web service 面向的是开发者(需要再次开发) 普通web 面向的是用户(直接使用)

  8. NSData与UIImage之间的转换

    1 //NSData转换为UIImage 2 NSData *imageData = [NSData dataWithContentsOfFile: imagePath]; 3 UIImage *im ...

  9. day08(异常处理,创建异常,finally,throws和throw的区别)

    异常处理, 异常的产生  运行时异常:程序运行中产生的异常:RuntimeException类.   编译时异常:程序在编译时产生的异常:除了RuntimeException类  其他都是编译时产生的 ...

  10. Win7_Ultimate + VS2010 + openGL 配置

    Win7_Ultimate + VS2010 + openGL 配置 0. 前言 OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性. (1)与C语言紧密结合. O ...