您好(hǎo),歡迎來(lái)到(dào)盤龍區華銘誠泰網絡工作室官方網站(♦÷zhàn)!ZJJCL.CN
新聞動态
您現(xiàn)在的(de)位置:首頁 > 技(jì)術(shù)文(wén)摘
監控mysql啓動情況并檢測表錯(cuò)誤修複
來(lái)源:創立工(gōng)作(zuò)↔₩↑®室 作(zuò)者:馮軍 發布時(shí&☆)間(jiān):2024-07-23 11:50:07 閱讀(dú) 12®<₩₩04 次
#!/bin/env bash
################""•<##################### '¶###################################∑₽©#######
# NOTE:
# The test system i™¥s Ubuntu12.04
# This Scripts a↓↔≠∏ll rights reserved deserved€α by MickeyZZC
# Copyr≥♥ight  2013
#
######§≥<φ###############################×>✘¥#################################≠δ #########
PATH=/bin:/sbin:/usr/bi"πn:/usr/sbin:/usr/local/bin:/usr/local₩∏/sbin:~/bin
export PATH
clear♦§≈♥
 
username=
passwd£≤=
mysqlhost=""
 
mysqllive(){
¥‌‍δ    num=0
    while [[ `pidof my→ε™sqld` == "" ]] ; do
        echo "$(d∏∏÷₩ate +%Y%m%d%H%m),MYSQL IS DOWN" &a• ↔mp;gt;&gt; /var/log/mysqlstat.l±•←λog
        service mysql start
      δ®  num=`expr $num + 1`
  εσ✘₽          if [[ $num -gt 11 ]] ; then
§≈                echo "$(date×↕↔ +%Y%m%d%H%m),MYSQL NO UP" &<∑₽amp;gt;&gt; /var/log/mysqlstat.$>log
                ex✔®¶it 1
            fi
        sleep 1∞<<0
    done
    if [[ $num -gt σε0 ]] ; then
        mysqlsamchγ•<αk
    fi
}
mysqlsamchk≈γ(){
    if [[ `which mysqlche ☆ck` == "" ]] ;then
        my€©sqldata=`mysql -h$mysqlhost -u↑≈∞✘$username -p$passwd -e©✔"show databases"|grep -vE "mysq"≤∏l|information_schema|performance_sc∏↕←hema|Database"`
      λ>✘  for i in ${mysqldata♥↑÷[@]} ; do
         α≥↑©   mytables=`mysql -h$±φmysqlhost -u$usernam←₹∞'e -p$passwd -e"use $i;show tables←±÷★;"|grep -vE "Tables_in_"`
     ☆✘☆∏       for j in ${mytables[@]} ;‍¶↓ do
                table_statu✘β≤✔s=`mysql -h$mysqlhost -u$user₹¶φname -p$passwd -e"check table $<₽≈i.$j"|awk 'BEGIN{IFS='\t'}{print $3}→£ '|grep "error"`
   "♣             if [ ! "$table_stat¶∞÷&us" == "" ] ; then
           ©♥∞↓         mysql -h$mysqlhost®® -u$username -p$passwd -e"repair taδλble $i.$j"
           ✔≤'         echo "$(date +%Y%m%d%H%M),↓λ±→$i.$j be repair" &gt;&gt;δ★§€ /var/log/mysqlstat.lo§‍↔€g
                fiΩ÷​≤
            done
     ☆₹​   done
    else
        mysqlche✔↑ck --all-databases --auto-rep<★©↓air -u$username -p$passwd π∏‍♥|awk '!/OK/ {printf "datetime,%s\n"¶←≤,$1}'|sed "s/datetime/$(date +π↔%Y%m%d%H%M)/g" &gt;&β§amp;gt; /var/log/mysqlstat.logα$∑♥
#   day="$(date +%Y%m%d|cut -b 3-↕↑8) $(date +%H)"
#   gre£∑p "is marked as crashed and shoul♦>✔♦d be repaired" /var/log/mysql.λδλerr
    fi
}
 
if [[ $1 = 'chec♥"k' ]] ; then
    mysqlsamchk
else
  ¥‌  mysqllive
fi