檢測mysql狀態的指令碼

gswwgph發表於2007-10-08

#!/bin/bash
/usr/bin/nmap localhost |grep 3306
if [ $? -eq 0 ]
then
/usr/local/mysql/bin/mysql -uxxxxx -pxxxxxx --connect_timeout=5 -e "show databases;"
if [ $? -ne 0 ]
then
/bin/ps aux |grep mysql |grep -v grep | awk '{print $2}' | xargs kill -9
/usr/local/mysql/bin/mysqld_safe --user=mysql & > /dev/null
fi
else
/usr/local/mysql/bin/mysqld_safe --user=mysql & > /dev/null
fi


這個指令碼用到了namp掃描工具,所以,系統中如果沒安裝nmap掃描工具的,需要先安裝該工具.
簡單描述一下指令碼的功能:
首先,檢測mysql埠是否正常存在,埠不存在就執行啟動mysql服務,當然,啟動的指令碼的位置根據你的安裝路徑會有不同,然後如果埠存在,則有mysql服務在執行,那麼檢測mysql狀態,能不能正常連線,如能正常連線說明mysql正常,不做任何處理,如果不能正常連線,則殺掉所有mysql程式,然後啟動mysql服務,為什麼要殺掉程式而不進行正常的重起呢,是因為有時候mysql是不能正常關閉的,所以不能正常重起,所以保險的做法是殺掉程式,然後啟動服務.

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1701142/viewspace-975099/,如需轉載,請註明出處,否則將追究法律責任。

相關文章