python2监控多源复制状态并发邮件
2019-09-09 17:12
1311 查看
我们环境中用到了多源复制,因此写个查看状态的Python脚本,python为系统中自带的2.6.6,邮件内容为html格式,隔行变色,脚本如下:
# -*- coding: UTF-8 -*- import smtplib from email.mime.text import MIMEText from email.header import Header import datetime import MySQLdb date_end = datetime.date.today() html_part1 = """ <html> <head></head> <body><h2>Report of 10.10.100.10 multi source repl status {current_time}</h2> <table border=\"1\" bordercolor=\"#000000\" width=\"350\" style=\"width:85%;BORDER-COLLAPSE: collapse\" > <tbody> <tr style="color:White" bgColor=#0066CC> <th>Master_Host</th> <th>Slave_IO_Running</th> <th>Slave_SQL_Running</th> <th>Seconds_Behind_Master</th> <th>Channel_Name</th> </tr> """.format(current_time=date_end) html_part2 = """ </body> </html> """ td_bgcolor_num = 1 db = MySQLdb.connect("10.10.100.10","mysqldba","mysql-dba-168" ) cursor = db.cursor() cursor.execute("show slave status") results = cursor.fetchall() with open('/tmp/slavesof10010.html',mode='w') as f: f.write(html_part1) for row in results: Master_Host = row[1] Slave_IO_Running = row[10] Slave_SQL_Running = row[11] Seconds_Behind_Master = row[32] Channel_Name = row[-2] if td_bgcolor_num%2==0: td_bgcolor='#F0F0F0' else: td_bgcolor='#FFFFCE' td_bgcolor_num += 1 pro = ''' <tr bgcolor="'''+td_bgcolor+'''" align=\"center\" > <td style="width: 20%;">'''+ row[1].encode('utf-8','ignore') + "</td>" + ''' <td style="width: 15%;">'''+ row[10].encode('utf-8','ignore') + "</td>" + ''' <td style="width: 15%;">'''+ row[11].encode('utf-8','ignore') + "</td>" + ''' <td style="width: 15%;">'''+ str(row[32]) + "</td>" + ''' <td style="width: 20%;">'''+ Channel_Name + '''</td> </tr> ''' f.write(pro) f.write(html_part2) db.close() mail_host="smtp.xxxx.com" sender = 'devops@xxxx.com' receivers = ['devops@xxxx.com','123456789@qq.com','126@126.com','163@163.com'] with open('/tmp/slavesof10010.html',mode='r') as f: html=f.read() message = MIMEText(html, 'html') message['From'] = Header("devops@xxxx.com") message['To'] = Header(";".join(v for v in receivers)) subject = 'multi-source-repl of 100.10汇总' message['Subject'] = Header(subject, 'utf-8') try: smtpObj = smtplib.SMTP() smtpObj.connect(mail_host, 25) # 25 为 SMTP 端口号 smtpObj.sendmail(sender, receivers, message.as_string()) print "邮件发送成功" except smtplib.SMTPException as e: print "Error: 无法发送邮件", print e
计划任务
00 09 * * * python /server/scripts/get_html_10010.py &> /dev/null
相关文章推荐
- 用python实现监控网站状态,并发送告警邮件
- 用python实现监控网站状态,并发送告警邮件
- python爬虫抓取zabbix监控图,并发邮件
- Linux用shell脚本监控网站运行状态并发告警邮件
- 提取zabbix监控平台单台服务器图形并发邮件python实现
- 编写定时监控salt和客户端之间的通信状态并发邮件报警----- saltstack
- Python3 实现简易ping监控并发送报警邮件
- powershel连接数据库监控数据库状态并发报警邮件
- Python监控主机是否存活,并发报警邮件
- 自动判断mysql主从复制状态并邮件通知
- python实现自动监控网站并发送邮件告警
- python 多sheet页写入excel并发邮件
- python监控网站运行异常并发送邮件的方法
- python导出zabbix数据并发邮件脚本
- 以写代学:python 添加用户设置密码并发邮件给root用户
- python 监控日志并发送邮件报警
- python监控文件,并且发送告警邮件
- Zabbix监控mysql主从复制状态
- 用Python实现Hadoop实时作业状态监控
- python利用WMI等监控获取windows状态如CPU、内存、硬盘等信息