python检测mysql状态脚本--参考

#!/usr/bin/env python
#encoding:utf-8
import MySQLdb
import paramiko 
import sys,os
from email.mime.text import MIMEText
from email.header import Header
import smtplib
db1_ip="172.17.2.51"
db2_ip="172.17.2.52"
num = ‘‘
mmm_info = ‘‘
IoS = ‘‘
SqS = ‘‘
Sec = ‘‘
e = ‘‘

def db_info(ip):
  global IoS
  global SqS
  global Sec
  global e
  try:
    conn = MySQLdb.connect(host=ip,user=‘test‘,passwd=‘123456‘,port=7000,charset=‘utf8‘)
    cur = conn.cursor()
    cur.execute(‘show slave status‘)
    for n in cur.fetchall():
      IoS=n[10]
      SqS=n[11]
      Sec=n[32]
    cur.close()
    conn.close()
  except MySQLdb.Error,e:
    print "MySQLdb Error",e
    

def send_mail(INFO):
  to = "[email protected]"
  user = "[email protected]"
  passwd = "xxxxxx"
  subject = ‘辽宁移动企业通信录数据库故障警告‘
  mail_host = "smtp.feinno.com"
  port = ‘587‘
  content=INFO
  msg = MIMEText(content,_subtype=‘plain‘,_charset=‘utf-8‘)
  msg[‘To‘] = to
  msg[‘from‘] = user
  msg[‘Subject‘] = Header(subject, ‘utf-8‘)
  s = smtplib.SMTP()
  s.connect(mail_host,port)
  s.login(user,passwd)
  s.sendmail(user,to,msg.as_string())
  s.close()
  

def mmm_status():
  global num
  global mmm_info
  host=db2_ip
  user=‘root‘
  password=‘xxxxxx‘
  cmd=‘mmm_control show‘
  s = paramiko.SSHClient() 
  s.load_system_host_keys() 
  s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  s.connect(host,22,user,password,timeout=1) 
  stdin,stdout,stderr = s.exec_command(cmd)
  cmd_result = stdout.read(),stderr.read()
  mmm_info=str(list(cmd_result)[0])
 
def run(IP):
  mmm_status()
  db_info(IP)
  if e == "":
    if IoS != "Yes" or SqS != "Yes":
      DB_info=‘%s replicaiton error! \nSlave_IO_Running:%s\nSlave_SQL_Running:%s\nSeconds_Behind_Master:%s\n‘‘\n%s‘ %(IP,IoS,SqS,Sec,mmm_info)  
      send_mail(DB_info)
  else:
    DB_info=‘%s mysql_db is not ok ,info:%s‘ %(IP,e)
    send_mail(DB_info)
    
    
run(db1_ip)
run(db2_ip)
时间: 2024-08-15 06:05:31

python检测mysql状态脚本--参考的相关文章

一个好用的Python备份mysql的脚本

前几天打算用Python写一个mysql脚本,上Google看了下老外写的,写的挺好的,原地址在http://tecadmin.net/python-script-for-mysql-database-backup/#,所以就给 copy过来了 1 #!/usr/bin/python 2 ########################################################### 3 # 4 # This python script is used for mysql

python检测QQ在线状态脚本

一段查询QQ是否在线的代码 通过访问http://wpa.qq.com/pa?p=1:[QQ号码]:1查询返回的图片 如果返回 2329 则在线  2262 则离线 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import time,datetime  import urllib2  def chk_qq(qqnum):      chkurl = 'http://wpa.qq.com/pa?p=1:'+`qqnum`+':1'     a = ur

如何实时检测mysql主从状态,并做邮件告警?

实时检测mysql主从状态,并做邮件告警 需求分析: 当我们做完主从后,主从成功的话,Slave_IO_Running和Slave_SQL_Running两个进程的状态就为yes,但是在做主从同步时也不排除,会发生一些意外的情况,所以我们需要写个脚本来实时检测Slave_IO_Running和Slave_SQL_Running的状态,一旦mysql主从状态出现了状况,就通过邮件发送告警,然后再做维护. 脚本思路: 定时检测mysql主从状态,说白的了就是通过脚本让系统去自我检测主从状态,如果是主

python备份mysql脚本

今天简单的写了个python的mysql备份脚本,其实也不是很难呀.比shell简洁了很多! 开整: 注释都用英文写了,有些英语基础的朋友应该都可以看得懂了! #!/usr/bin/env python #backup the gtshop #author:ley #encoding=utf8 #date:2015-06 import os,sys,datetime,time from stat import * #mysqlbackup user User = 'root' #mysqlbac

Zabbix添加自定义监控项之(监控mysql状态)

一.实验环境 Zabbixserver    192.168.1.103    版本:V3.0.4 ZabbixAgent    192.168.1.128 Mysql       192.168.1.102 二.监控需求 监控mysql的状态,当状态发生异常,发出报警 三.mysql添加监控监控脚本 3.1.使用mysqladmin工具来检测mysql状态 [email protected]:~# mysqladmin -uroot -p1qaz#EDC ping 说明:如果MySQL状态正常

脚本_检测mysql存活状态

#!bin/bash#功能:检测mysql服务是否存活#作者:liusingbon# host为你需要检测的mysql主机的IP 地址,user为mysql账户名,passwd为密码; 这些信息需要根据实际情况修改后方可使用host=127.0.0.1user=rootpasswd=123456mysqladmin -h 127.0.0.1 -u root -p'$passwd' ping &>/dev/nullif [ $? -eq 0 ];then   echo "mysql

用Python对MySQL同步状态进行监控

用Python对MySQL同步状态进行监控 使用Python对MySQL数据库服务器是否可访问,及主从同步是否中断进行监控,是一件非常简单的事情.感谢Python给我们带来了如此简单,强大,快捷的开发环境. 本文使用到的Python模块 使用telnetlib校验服务器是否可被访问 使用SMTP向管理员发送通知邮件 使用MySQL官方的驱动对数据库进行访问 使用optparse实现命令行参数的提取 实现原理 使用optparse模块获取命令行参数.读取defaults-file设置文件内容(如果

python 监控mysql脚本

#!/usr/bin/env python #-*- coding: UTF-8 -*- from __future__ import print_function from mysql import connector import logging,argparse,sys import sys #create user [email protected]'127.0.0.1' identified by '123456'; #grant replication client on *.* t

线上一个简单检测Ping状态的邮件报警脚本

Step1.安装sendmail来发邮件 # yum -y install sendmail # /etc/init.d/sendmail start # chkconfig sendmail on Step2.安装邮件客户端 # yum -y install mutt 2.1添加发件人信息,如下 # vim /etc/Muttrc set charset="utf-8"           #设置发邮件编码 set envelope_from=yes set rfc2047_para