我们环境中用到了多源复制,因此写个查看状态的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 = """
Report of 10.10.100.10 multi source repl status {current_time}
| Master_Host |
Slave_IO_Running |
Slave_SQL_Running |
Seconds_Behind_Master |
Channel_Name |
""".format(current_time=date_end)
html_part2 = """
"""
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 = '''
| '''+ row[1].encode('utf-8','ignore') + " | " + '''
'''+ row[10].encode('utf-8','ignore') + " | " + '''
'''+ row[11].encode('utf-8','ignore') + " | " + '''
'''+ str(row[32]) + " | " + '''
'''+ Channel_Name + ''' |
'''
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
相关内容
空调哪个符号是除湿的
空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
空调用多长时间需要加氟一次
一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
空调开多久需要休息多长时间
问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次
1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次
看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...