获取从库健康状态脚本

获取从库健康状态脚本

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#version 1.0 
#2016-07-05
#get slave db status

import csv
import MySQLdb

#从库ip组
ip_array = [
'10.81.2.72',
'10.81.2.73',
'10.81.2.74',
'10.81.2.75',
'10.81.2.76',
'10.81.2.77',
'10.81.2.78',
'10.81.2.79',
'10.81.2.80'
    ]

#mysql类
class My:
    user=''
    passwd=''
    host=''    
    def __init__(self,user,passwd,host):
                self.user=user
                self.passwd=passwd
                self.host=host

    def connectDB(self):
        self.conn=MySQLdb.connect(user=self.user,host=self.host,passwd=self.passwd)
        #print self.conn
        self.cur=self.conn.cursor()
        #print self.cur
    
    def executeDB(self,sql):
        self.cur.execute(sql)
        return self.cur.fetchall()

    def __del__(self):
        self.conn.close()
                print "成功析构"

if __name__ == '__main__':
    csv_array=[]
    title_array = ['SLAVE','MASTER','BINLOG_SYNC','BINLOG_RUN','BINGLOG_DELAY']
    # 遍历获取slave状态,写入数组
    for ip in ip_array:
        db = My('user','aGVpdGFvY2FjdGkK',ip)
        db.connectDB()
        sql='show slave status'
        result = db.executeDB(sql)
        csv_array.append([ip,result[0][1],result[0][10],result[0][11],result[0][-6]])
    #print csv_array
    # 根据数组数据生成表格文件
    writer = csv.writer(file('slave_status.csv', 'wb'))
    writer.writerow(title_array)
    for stat in csv_array:
        writer.writerow(stat)

查看执行结果

# cat slave_status.csv 
SLAVE,MASTER,BINLOG_SYNC,BINLOG_RUN,BINGLOG_DELAY
10.81.2.72,10.81.2.15,Yes,Yes,27294
10.81.2.73,10.81.2.16,Yes,Yes,29005
10.81.2.74,10.81.2.17,Yes,Yes,36271
10.81.2.75,10.81.2.18,Yes,Yes,30712
10.81.2.76,10.81.2.11,Yes,Yes,0
10.81.2.77,10.81.2.12,Yes,Yes,0
10.81.2.78,10.81.2.13,Yes,Yes,0
10.81.2.79,10.81.2.14,Yes,Yes,0
10.81.2.80,10.81.2.27,Yes,Yes,0
原文地址:https://www.cnblogs.com/xiaoming279/p/6225744.html