shell习题第26题:监控mysql服务

【题目要求】

假设mysql密码是123456. 写脚本监控mysql服务是否正常,比如是否可以执行show processlist,并检测一下当前的mysql服务是主还是从。如果是从,请判断他的主从服务是否正常。如果是主,则不需要做什么

【核心要点】

mysql -uroot -p123456 -e "show processlist"

show slave status

【脚本】

#!/bin/bash
mysql="/usr/local/mysql/bin/mysql -uroot -p123456"
if ! $mysql -e "show processlist" >/dev/null 2>/dev/null
then
    echo "Mysql service is down"
else
    $mysql -e "show slave status\G" 2>/dev/null > /tmp/slave.stat
    n=`wc -l /tmp/slave.stat | awk ‘{print $1}‘`
    if [ $n -eq 0 ]; then
        echo "This is master."
    else
        echo "This is slave."
        $mysql -e "show slave status\G" | egrep ‘Slave_IO_Running:|Slave_SQL_Running:‘ | awk -F‘: ‘ ‘{print $2}‘ >/tmp/SQL.tmp
        if grep -qw "NO" /tmp/SQL.tmp
        then
            echo "The slave is down."
        fi
    fi
fi

原文地址:https://www.cnblogs.com/dingzp/p/10992110.html

时间: 2024-11-07 16:36:47

shell习题第26题:监控mysql服务的相关文章

shell脚本:监控MySQL服务是否正常

监控MySQL服务是否正常,通常的思路为:检查3306端口是否启动,ps查看mysqld进程是否启动,命令行登录mysql执行语句返回结果,php或jsp程序检测(需要开发人员开发程序)等等: 方法1:监听3306端口 #!/bin/bash #written by [email protected] port=`netstat -nlt|grep 3306|wc -l` if [ $port -ne 1 ] then  /etc/init.d/mysqld start else  echo "

生产环境监控mysql服务状态

在生产环境中,如果某个重要的服务关闭了,可能会产生不可预料的结果,这时候,我们要作一个脚本,这个脚本可以监控服务状态,在服务关闭的时候,可以自动打开服务,确保用户的利益. 下面我自己写了一个监控Mysql服务的脚本,目前还没有发现bug,如果有大神发现bug的话可以和我说一下哈,本人QQ:1090139534,我也是刚刚学习的,大家可以加我和我交流. #3306是mysqld服务的端口,看看是否是LISTEN状态. stat="`netstat -lnt|grep 3306 |grep  LIS

监控MYSQL服务是否异常

问题描述:监控MYSQL服务是否正常启动,如果未正常启动,就启动MYSQL 判断mysql的方法: 1)端口判断 [[email protected] ~]# netstat -lntup | grep 3306 tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      2288/mysqld 2)进程判断 [[email protected] ~]# ps -ef | grep mysqld 

zabbix自带模板监控MySQL服务

1.GUI界面添加Mysql模板 Configuration --> Hosts --> 点击要添加的主机 --> Templates 添加新的模板,点击Select -->选择"Template DB MySQL" 点击"add"添加,最后点击Update更新: 2.登陆MySQL服务,创建只读账户: mysql> grant select on *.* to "zabbix"@"localhost&qu

Linux运维之Shell编程------(一)监控MySQL错误码及主从复制同步异常

Linux运维之Shell编程 一.监控MySQL错误码及主从复制同步异常 题目:监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟:阶段1:开发一个守护进程脚本每30秒实现检测一次.阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062),则跳过错误.阶段3:请使用数组技术实现上述脚本(获取主从判断及错误号部分) 阶段2: #!/bin/bash#CONTACT='[email prote

zabbix-server端监控MySQL服务

Zabbix 监控MySQL数据库 为server.zabbix,com 添加服务模块 创建MySQL服务图形 Server.zabbix.com 服务器操作 [[email protected] ~]# cd /usr/local/zabbix/etc/ [[email protected] etc]# vim zabbix_agentd.conf PidFile=/tmp/zabbix_agentd.pid Server=127.0.0.1,172.20.10.2 ServerActive=

zabbix3.0 监控mysql服务免用户名密码登录的问题故障处理详细过程

1,My.cnf中用户名密码无效 在azure云上面,使用Zabbix监控mysql中,发现在/usr/local/mysql/my.cnf里面设置的默认用户名密码无效,出不来数据,而且在zabbix服务器上,使用zabbix_get也报错failed,如下 [[email protected]_serv_121_12 ~]#/usr/local/zabbix/bin/zabbix_get -s 192.168.13.13 -p10050 -kmysql.status[Uptime] /usr/

监控MySQL服务是否正常

1.进程和端口都成功才算mysql服务正常 #!/bin/bash port=`netstat -ntl |grep 3306 |wc -l` process=`ps -ef |grep mysql |grep -v grep |wc -l` if [ $port -eq 1 ]  && [ $process -eq 2 ] then echo "MySQL is running" else /etc/init.d/mysqld start fi 2.使用客户端登陆My

shell习题第13题:监控nginx进程

[题目要求] 在服务器上写一个脚本,要求如下 1. 每隔10秒去检查而一次服务器上的nginx进程数,如果>=500的时候,就需要自动重启一下nginx服务,并检测启动是否成功 2. 如没有正常启动还要再一次启动,最大不成功数超过5次则需要立即发邮件通知管理员,并且之后不需要再检测 3. 如果启动成功之后,1分钟后再次检测nginx进程,若正常则重复之前的操作(每隔10秒检查一次),若还是>=500,那放弃重启并需要发邮件给管理员,然后自动退出脚本.假设发邮件脚本为mail.py [核心要点]