########本腳本應用在生產環境中,是運用mysql主從的基礎上########
vi mysqlm-s.sh #!/bin/bash ip=`ifconfig eth0|sed -n 2p|awk '{ print $2 }'|awk -F : '{ print $2 }'` port=`netstat -anl|grep 3306 |sed -n '1p' |awk '{print $4}'|awk -F: '{ print $2}'` array=($(mysql -uUSER -pPASSWD -e "show slave status\G"|grep "Running" |awk '{print $2}')) if [ "$port" == "3306" ] then if [ "${array[0]}" == "Yes" ] || [ "${array[1]}" == "Yes" ] then echo "slave is OK" else /home/shell/sendEmail/sendEmail -f XXX@XXX -t XXX@XXX -s smtp.XXX -u "mysql主從複製出錯" -xu user -xp passwd -m "${ip}:slave is error" fi else /home/shell/sendEmail/sendEmail -f XXX@XXX -t XXX@XXX -s smtp.XXX -u "mysql停止運行" -xu user -xp passwd -m "${ip}:mysql is shutdown and slave error" fi
============================================================================================
$ip 是獲取本機IP;
$port 是判斷mysql服務是否正常運行;
$array 是數組;
$array[0] 是數組裏的第一個參數;
$array[1] 是數組裏的第二個參數;
if ...then.....fi 根據獲取參數來判斷達到監控;
${ip}:mysql is shutdown and slave error;#注意因爲mysql不正常運行,故主從複製出故障。 ============================================================================================
最後給予可執行權限給腳本,使用crontab -e ,每十五分鐘運行一次 */15 * * * * /home/shell/mysqm-s.sh