一般来说,数据库库都非常重要,我们一般是不会让数据库进行重启的,所以需要实时监控mysql的运行状态。
对于监控mysql的运行状态可使用shell脚本进行监控,一种很简单的方法,查看mysql的端口,看端口是否启动,从而进行判断mysql是否宕掉,另一种通过监控端口和进程进行判断。(默认mysql端口为3306)
--------------------------------如有发现错误或者是其他问题请联系QQ:1419544854-------------------------------------------------
1. 通过端口进行判断:(简单的)
#!/bin/bash
port=`netstat -anpt|grep mysqld|awk -F '[ :]+' '{print $5}'`
if [ "$port" == "3306" ];then ##这里判断的时候把$port与3306当做字符串进行判断
echo "mysql server is running"
else
/etc/init.d/mysqld start
fi
2. 通过端口和进程进行判断:(稍微完善点的)
#!/bin/bash
portNum=$(netstat -anpt|grep mysql|wc -l)
mysqlProcessNum=$(ps -ef |grep mysqld|grep -v "grep mysqld"|wc -l)
if [ $portNum -eq 1 ] && [ $mysqlProcessNum -eq 2 ];then
echo "mysql is running"
else
/etc/init.d/mysqld start >/dev/null
sleep 10
portNum=$(netstat -anpt|grep mysql|wc -l)
mysqlProcessNum=$(ps -ef |grep mysqld|grep -v "grep mysqld")
if [ $portNum -ne 1 ] && [ $mysqlProcessNum -ne 2 ];then
while true
do
pkill mysqld >/dev/null 2>&1
[ $? -ne 0 ] && break
sleep 2
done
else
/etc/init.d/mysqld start >/dev/null && echo "mysql successful"||echo "mysql failure"
fi
fi