標籤:mysql
1,根據mysql連接埠3306來判斷服務啟動正不正常
netstat -lnt|grep 3306|awk -F ‘[: ]+ ‘ ‘{print $5}‘ //擷取連接埠號碼比較來判斷
#!/bin/shPortNum=`netstat -lnt|grep 3306|awk -F ‘[: ]+ ‘ ‘{print $5}‘`if [ "$PortNum" == 3306 ];then echo "db is running"else /data/3306/mysql restartfi
netstat -lnt|grep 3306|wc -l //結果等於1,資料庫運行正常;結果等於0,資料庫運行不正常
#!/bin/sh
PortNum=`netstat -lnt|grep 3306|wc -l`if [ $PortNum -eq 1 ];then echo "db is running"else /data/3306/mysql restartfi
2,如果mysql連接埠和進程同時存在,才認定mysql服務正常
ps -ef|grep mysql|grep -v grep|wc -l //把進程轉換為行數,方便做判斷:正常啟動進程數為2
#!/bin/shPortNum=`netstat -lnt|grep 3306|wc -l`mysqlProcessNum=`ps -ef|grep mysqld|grep -v grep|wc -l`//if [ $PortNum -eq 1 ] && [ $mysqlProcessNum -eq 2 ];thenif [ $PortNum -eq 1 -a $mysqlProcessNum -eq 2 ];then echo "db is running"else /data/3306/mysql startfi
#!/bin/shmysqlProcessNum=`ps -ef|grep mysqld|grep -v grep|wc -l`PortNum=`netstat -lnt|grep 3306|wc -l`MysqlStartUp="/data/3306/mysql"LogPath="/tmp/mysql.log"if [ $PortNum -eq 1 -a $mysqlProcessNum -eq 2 ];then echo "db is running"else $MysqlStartUp start >$LogPathsleep 10; mysqlProcessNum=`ps -ef|grep mysqld|grep -v grep|wc -l` PortNum=`netstat -lnt|grep 3306|wc -l` if [ $PortNum -ne 1 ] && [ $mysqlProcessNum -ne 2 ];then while true do killall mysqld >/dev/null 2>&1 [ $? -ne 0 ] && break sleep 1 done $MysqlStartUp start >>$LogPath && status="successfully"||status="failure" [ $PortNum -eq 0 ] && $MysqlStartUp start >>/tmp/mysql.log [ $? -eq 0 ] && echo "mysql is started" fi mail -s "mysql startup status is $status" [email protected] < $LogPathfi
類比登陸判斷:
mysql -uroot -p‘123456‘ -S /data/3306/mysql.sock -e "select version();" >/dev/null 2>&1
#!/bin/shmysqlstatus=`mysql -uroot -p‘123456‘ -S /data/3306/mysql.sock -e "select version();" >/dev/null 2>&1`if [ $? -eq 0 ];then echo "db is running"else /data/3306/mysql restartfi
mysql檢測指令碼