shell脚本监控mysql主从状态

此脚本首先判断mysql服务器是否运行,如果正常,继续判断主从,否则发邮件告警,只发一次。
判断主从状态是判断IO和SQL线程是否都为yes,如果不是则发邮件通知,只发一次。

代码如下:

#!/bin/bash
#define mysql variable
mysql_user="root"
mysql_pass="123456"
email_addr="slave@jb51.net"

mysql_status=`netstat -nl | awk 'NR>2{if ($4 ~ /.*:3306/) {print "Yes";exit 0}}'`
if [ "$mysql_status" == "Yes" ];then
        slave_status=`mysql -u${mysql_user} -p${mysql_pass} -e"show slave status\G" | grep "Running" | awk '{if ($2 != "Yes") {print "No";exit 1}}'`
        if [ "$slave_status" == "No" ];then
                echo "slave is not working!"
                [ ! -f "/tmp/slave" ] && echo "Slave is not working!" | mail -s "Warn!MySQL Slave is not working" ${email_addr}
                touch /tmp/slave
        else
                echo "slave is working."
                [ -f "/tmp/slave" ] && rm -f /tmp/slave
        fi
        [ -f "/tmp/mysql_down" ] && rm -f /tmp/mysql_down
else
        [ ! -f "/tmp/mysql_down" ] && echo "Mysql Server is down!" | mail -s "Warn!MySQL server is down!" ${email_addr}
        touch /tmp/mysql_down
fi

(0)

相关推荐

  • 安装配置Zabbix来监控MySQL的基本教程

    Zabbix的简单安装配置说明 1.在已有的LAMP或者LNMP的基础上安装zabbix,安装一些依赖包: yum -y install mysql-devel libcurl-devel net-snmp-devel 2.添加用户: groupadd zabbix useradd zabbix -g zabbix 3.创建数据库,添加授权账号 create database zabbix character set utf8; grant all privileges on zabbix.*

  • shell监控脚本实例—监控mysql主从复制

    本节内容:监控mysql主从复制的shell脚本. 说明:监控脚本在 rhel5 下测试正常,其它版本的linux 系统请自行测试,需要的一些准备工作可以查看这篇文章 代码: 复制代码 代码如下: #监控mysql 主从复制cat chk_mysql_rep.sh #!/bin/bash # #script_name:chk_mysql_rep.sh #check mysql replication # #ssh root@xen "/usr/local/mysql/bin/mysql -uro

  • mysql性能监控工具Innotop简介及配置

    1.innotop安装 参考官网:http://innotop.googlecode.com/svn/html/installing.html # wget http://innotop.googlecode.com/files/innotop-1.9.0.tar.gz # tar -zxvf innotop-1.9.0.tar.gz # cd innotop-1.9.0 安装INNOTOP工具非常简单,其是由PERL写的,当然需要PERL环境和相关的工具包.在安装之前先要确定你的系统安装了Ti

  • mysql常用监控脚本命令整理

    #/bin/sh #检测mysql server是否正常提供服务 mysqladmin -u sky -ppwd -h localhost ping #获取mysql当前的几个状态值 mysqladmin -u sky -ppwd -h localhost status #获取数据库当前的连接信息 mysqladmin -u sky -ppwd -h localhost processlist #获取当前数据库的连接数 mysql -u root -p123456 -BNe "select ho

  • Shell脚本实现监控MySQL主从同步

    代码如下: 复制代码 代码如下: #!/bin/bash #check MySQL_Slave Status #crontab time 00:10 MYSQLPORT=`netstat -na|grep "LISTEN"|grep "3306"|awk -F[:" "]+ '{print $4}'` MYSQLIP=`ifconfig eth0|grep "inet addr" | awk -F[:" "

  • MySQL数据库维护中监控所用到的常用命令

    status = show status like '%%' [例:show status like 'Com_select']variables = show variables like '%%' [例:show variables like 'query_cache_size'] 1.MySQL查询次数(status)Com_select;Com_update;Com_insert;Com_delete;Com_change_db 2.查询缓存空间大小:query_cache_size(v

  • 根据mysql慢日志监控SQL语句执行效率

    根据mysql慢日志监控SQL语句执行效率 启用MySQL的log-slow-queries(慢查询记录). 在Linux环境下先要找到my.cnf文件(一般在/etc/mysql/),然后可能会发现该文件修改后无法保存,原因是你没有相应的权限,可以从属性中看到该文件的所有者是root,这时要先以root的身份打开它: sudo nautilus /etc/mysql 接着再打开my.cnf文件然后找到[mysqld]标签在下面加上: log-slow-queries=/path/slow.lo

  • MySQL实时监控工具orztop的使用介绍

    前言 orztop是一款实时show full processlist的工具,我们可以实时看到数据库有哪些线程,执行哪些语句等.工具使用方便简单.解决了我们需要手动刷新show full processlist的痛苦. 该工具为朱旭开发的一款可以查看mysql数据库实时运行的sql状况的工具,以前苦于通过show processlist/show full processlist抓取sql的同志们现在只要盯一盯屏幕就可以了,使用方法也很简单,如下: orztop结果图 此处我正在对我的mysql

  • mytop 使用介绍 mysql实时监控工具

    mytop类似于linux top工具,可以实时监控mysql服务器的性能信息. 安装方法 1.安装依赖 复制代码 代码如下: # cpan # cpan > install DBI # cpan > install Term::ReadKey # cpan > install DBD::mysql # cpan > exit 2.下载安装mytop 复制代码 代码如下: cd /tmp wget http://jeremy.zawodny.com/mysql/mytop/myto

  • 可用于监控 mysql Master Slave 状态的python代码

    复制代码 代码如下: import osimport sysimport MySQLdbdef getStatus(conn):    query = " SHOW SLAVE STATUS " # print query    cursor = conn.cursor()    cursor.execute(query)    result = cursor.fetchall()    return result[0]def resolve(conn):    cursor = co

随机推荐