mysql检测脚本

来源:互联网 时间:2017-07-27


1,根据mysql端口3306来判断服务启动正不正常

netstat -lnt|grep 3306|awk -F '[: ]+ ' '{print $5}' //获取端口号比较来判断

#!/bin/sh
PortNum=`netstat-lnt|grep3306|awk-F'[:]+''{print$5}'`
if["$PortNum"==3306];then
echo"dbisrunning"
else
/data/3306/mysqlrestart
fi

netstat -lnt|grep 3306|wc -l//结果等于1,数据库运行正常;结果等于0,数据库运行不正常

#!/bin/sh

PortNum=`netstat-lnt|grep3306|wc-l`
if[$PortNum-eq1];then
echo"dbisrunning"
else
/data/3306/mysqlrestart
fi

2,如果mysql端口和进程同时存在,才认定mysql服务正常

ps -ef|grep mysql|grep -v grep|wc -l //把进程转换为行数,方便做判断:正常启动进程数为2

#!/bin/sh
PortNum=`netstat-lnt|grep3306|wc-l`
mysqlProcessNum=`ps-ef|grepmysqld|grep-vgrep|wc-l`
//if[$PortNum-eq1]&&[$mysqlProcessNum-eq2];then
if[$PortNum-eq1-a$mysqlProcessNum-eq2];then
echo"dbisrunning"
else
/data/3306/mysqlstart
fi#!/bin/sh
mysqlProcessNum=`ps-ef|grepmysqld|grep-vgrep|wc-l`
PortNum=`netstat-lnt|grep3306|wc-l`
MysqlStartUp="/data/3306/mysql"
LogPath="/tmp/mysql.log"
if[$PortNum-eq1-a$mysqlProcessNum-eq2];then
echo"dbisrunning"
else
$MysqlStartUpstart>$LogPath
sleep10;
mysqlProcessNum=`ps-ef|grepmysqld|grep-vgrep|wc-l`
PortNum=`netstat-lnt|grep3306|wc-l`
if[$PortNum-ne1]&&[$mysqlProcessNum-ne2];then
whiletrue
do
killallmysqld>/dev/null2>&1
[$?-ne0]&&break
sleep1
done
$MysqlStartUpstart>>$LogPath&&status="successfully"||status="failure"

[$PortNum-eq0]&&$MysqlStartUpstart>>/tmp/mysql.log
[$?-eq0]&&echo"mysqlisstarted"
fi
mail-s"mysqlstartupstatusis$status"[email protected]<$LogPath
fi

模拟登陆判断:

mysql-uroot-p'123456'-S/data/3306/mysql.sock-e"selectversion();">/dev/null2>&1#!/bin/sh
mysqlstatus=`mysql-uroot-p'123456'-S/data/3306/mysql.sock-e"selectversion();">/dev/null2>&1`
if[$?-eq0];then
echo"dbisrunning"
else
/data/3306/mysqlrestart
fi

相关阅读:
Top