千家信息网

python2怎么监控多源复制状态并发邮件

发表于:2024-12-03 作者:千家信息网编辑
千家信息网最后更新 2024年12月03日,本篇内容主要讲解"python2怎么监控多源复制状态并发邮件",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python2怎么监控多源复制状态并发邮件"吧!
千家信息网最后更新 2024年12月03日python2怎么监控多源复制状态并发邮件

本篇内容主要讲解"python2怎么监控多源复制状态并发邮件",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python2怎么监控多源复制状态并发邮件"吧!

我们环境中用到了多源复制,因此写个查看状态的Python脚本,python为系统中自带的2.6.6,邮件内容为html格式,隔行变色,脚本如下:

# -*- coding: UTF-8 -*-import smtplibfrom email.mime.text import MIMETextfrom email.header import Headerimport datetimeimport MySQLdbdate_end = datetime.date.today()html_part1 = """    

Report of 10.10.100.10 multi source repl status {current_time}

""".format(current_time=date_end)html_part2 = """ """td_bgcolor_num = 1db = 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 = ''' " + ''' " + ''' " + ''' " + ''' ''' 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

到此,相信大家对"python2怎么监控多源复制状态并发邮件"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0
Master_Host Slave_IO_Running Slave_SQL_Running Seconds_Behind_Master Channel_Name
'''+ row[1].encode('utf-8','ignore') + "'''+ row[10].encode('utf-8','ignore') + "'''+ row[11].encode('utf-8','ignore') + "'''+ str(row[32]) + "'''+ Channel_Name + '''