Mysql主从检测脚本

#!/usr/bin/env python

#Kiss Python

#*/10 * * * * /usr/bin/python /root/checkslave.py

import MySQLdb

import time

import paramiko

ips = [‘127.0.0.1‘]

mailcontact = ‘[email protected]‘

mobilecontact = ‘18701669895‘

checklog=open(‘slave.log‘,‘a‘)

checklog.write(str(time.strftime(‘%Y-%m-%d %H:%M‘,time.localtime(time.time())))+"  ")

def checksql(host):

conn=MySQLdb.connect(host=host,user=‘root‘,passwd=‘zradbslave‘)

cur=conn.cursor(MySQLdb.cursors.DictCursor)

cur.execute("show slave status;")

sql=cur.fetchall()

cur.close()

if sql[0][‘Slave_IO_Running‘] == ‘Yes‘ and sql[0][‘Slave_SQL_Running‘] == ‘Yes‘:

checklog.write(str(host) + " Check DBSlave OK !" + "\n")

else:

mailconnect = paramiko.SSHClient()

mailconnect.set_missing_host_key_policy(paramiko.AutoAddPolicy())

mailconnect.connect(‘172.16.5.114‘, 22, username=‘root‘, password=‘‘, timeout=6)

stdin, stdout, stderr = mailconnect.exec_command(‘printf "%s ZraDBSlave Error !\n\n \

Master_Host: %s\nSlave_IO_Running: %s\n Slave_SQL_Running: %s"| mail -s \

"ZraDBSlave Error" %s‘ % (host,sql[0][‘Master_Host‘],sql[0][‘Slave_IO_Running‘], \

sql[0][‘Slave_SQL_Running‘],mailcontact))

stdin, stdout, stderr = mailconnect.exec_command(‘cd /home/weiyiqiang/fetion; \

LD_LIBRARY_PATH =. ./fetion  --mobile=18701669895 --pwd=pass --to=%s \

--msg-utf8="ZraDBSlave Error!\n\nMaster_Host: %s\nSlave_IO_Running: \                                  %s\nSlave_SQL_Running: %s"‘ % (mobilecontact,sql[0][‘Master_Host‘],sql[0] \

[‘Slave_IO_Running‘],sql[0][‘Slave_SQL_Running‘]))

mailconnect.close()

checklog.write(str(host) + " Check DBSlave Error Send Message to  %s !" % mobilecontact + "\n")

for ip in ips:

checksql(ip)

checklog.close()

时间: 2024-10-21 20:28:08

Mysql主从检测脚本的相关文章

shell监控MySQL主从状态脚本两则

内容为自己的一点总结,如有不对欢迎狠劲儿拍砖 本文来自http://yijiu.blog.51cto.com/转载请经博主同意,翻版可耻 监控主从复制正常与否 相比各位都应该知道,监控主从是否工作正常,涉及命令如下: show slave status\G; 那么,我们需要关注的参数如下: 1. 首先查看SQL和IO线程是否为YES状态(想必各位都明白了) 2. 是否有延迟 是否大于0   #一般生成环境延迟是否大于500秒,如果大于500则报警,如大于1000则严重报警 #比如传递一个sql到

Shell开发MySQL主从监控脚本

监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员. 1)开发一个守护进程脚本每30秒实现检测一次. 2)如果同步出现如下错误号(1158,1159,1008,1007,1062),则跳过错误. 阶段3:3)如果IO和SQL线程出现异常,则通知邮件给管理员 使用数组技术实现上述脚本(获取主从判断及错误号部分) 主从监控脚本如下: #!/bin/bash CODE=( 1158 1159 1008 1007 1062 2003 ) fun_Base(){ #1.定义变量 #1.1

mysql主从监控脚本:

在大型网站中对数据库往往都是做主从设计的,要是根据设计模式读写都只是进行再主库上面,那么从服务器往往是智能起了备份的作用,有时候备份端口了适当时候手工添加就好,但是要是网站做了读写分离,不及时发现那就是灾难性的了:(一般出现从库跟不上可以暂时先把读也切换到主上去.等从恢复好了再切回来):下面根据这个给出一条主从监控脚本: #!/bin/bash#check MySQL_Slave Status #crontab time 00:10 MYSQLPORT=`netstat -na|grep "LI

Mysql主从搭建脚本

前言:(1)该脚本可在任意路径运行,只需能够连接外网,会自动下载所需软件包并安装.            (2)该脚本内mysql版本为mysql-5.6.25.            (3)为提高脚本自由度,该脚本部署中,需要手动指定IP.同步用户名.同步密码,安装中按照提示输入即可.        别的就不多说啦,大家自己体验吧,欢迎意见和批评 ! 图解如下:     (1)主菜单     主菜单选项如下图,共7个选项,可输入该选项内容分别执行选项中的内容.其中可输入help查看帮助,可输入

mysql主从同步脚本监控脚本

结合我的另一篇zabbix自动发现Mysql并监控的博客使用最佳: 链接点我 脚本很简单,一看就明白: [[email protected] files]# cat libexec/slave.sh  #!/bin/bash ##slave.sh ##YES ---- 1 ##NO  ---- 0   export MYSQL_PWD=xxxxxx xstats () { STATS=$(/usr/local/mysql/bin/mysql -h127.0.0.1 -uUser_name  -P

监控MySQL主从同步脚本

#!/bin/sh#date:2015-12-07#filename:Check_MySQL-rep.sh#作者:linuxzkq #Email:[email protected]#version:v1.0 Mysql_cmd="mysql -uroot -poldboy"Error_num=(1158 1159 1008 1007 1062) while truedo    rep=($($Mysql_cmd -e "show slave status\G;"|e

mysql主从配置脚本

PASSWD=123456USER=rootREP_HOST=10.10.10.70REP_PORT=3306REP_USER=slave[email protected]REP_FILE=mysql-bin.000021REP_POS=863718 if [ ! -f /var/lock/mysql-zc.lock ];then mysql -u$USER -p$PASSWD -e "change master to master_host='$REP_HOST', master_port=$

监控mysql主从脚本

一.下载并解压sendEmail cd /usr/local/src wget tar -zxvf sendEmail-v1.56.tar.gz cp sendEmail-v1.56/sendEmail /usr/local/bin/     拷贝之后就能用了 发邮件命令: sendEmail [email protected] -t [email protected] -s smtp.163.com -u "test"-xu zhang_peicheng -xp xxxxxxxxxx

利用Zabbix监控mysql主从

mysql主从监控 #脚本如下,截取主从关键字 cat check_mysql_slave.sh  #!/bin/bash # declare -a 定义数组,slave_is 会被视为数组 declare -a slave_is slave_is=($(/data/mysql/bin/mysql -e "show slave status\G"|grep -E "Slave_IO_Running|Slave_SQL_Running:"|awk '{print $2