shell監控腳本-監控mysql 主從複製

shell監控腳本-監控mysql 主從複製


注意:請先參考 shell監控腳本-準備工做,監控腳本rhel5 下測試正常,其它版本的linux 系統請自行測試
#監控mysql 主從複製mysql

  
  
  
  
  1. cat chk_mysql_rep.sh linux

  2. #!/bin/bash sql

  3. # shell

  4. #script_name:chk_mysql_rep.sh bash

  5. #check mysql replication 運維

  6. # ssh

  7. #last update 20130320 by dongnan ide

  8. #bbs# http://bbs.ywwd.net/ 測試

  9. #blog# http://dngood.blog.51cto.com spa

  10. #

  11. #ssh root@xen "/usr/local/mysql/bin/mysql -uroot -pdongnan -e 'show slave status\G' -ss" | awk '/Running:/ {print $2}'

  12. #Yes

  13. #Yes

  14. #

  15. #variables

  16. ssh=/usr/bin/ssh

  17. sh_dir=/root/sh/

  18. crondir=${sh_dir}crontab

  19. source ${sh_dir}CONFIG

  20. hosts="$DB_SLAVE_HOSTS"

  21. #main

  22. #主循環遍歷機器

  23. for HOST in $hosts;do

  24. log=$crondir/log/mysql_replication_error.log

  25. key=$($ssh root@$HOST "/usr/local/mysql/bin/mysql -uroot -pdongnan -e 'show slave status\G' -ss" | awk '/Running:/ {printf $2}')

  26.    #沒法鏈接的主機,跳過本次循環

  27.    test -z "$key" && continue

  28.    #返回結果然

  29.    if [ "$key" == "YesYes" ];then

  30.        #flag真,解除報警

  31.        if [ -f "${crondir}/log/$HOST.mysql" ];then

  32.            #sms

  33.            #for mobile in $MOBILES;do

  34.                #echo "$HOST replication ok" | /usr/local/bin/gammu --sendsms TEXT "$mobile" -unicode

  35.            #done

  36.            #mail

  37.            for mail in $MAILS;do

  38.                echo "$HOST replication ok" | mail -s "$HOST replication ok" $mail

  39.            done

  40.            #flag

  41.            rm -f "${crondir}/log/$HOST.mysql"

  42.        fi

  43.    #返回結果假

  44.    else  

  45. check_date=$(date '+ %F %T')

  46.        #flag假,報警

  47.        if [ ! -f "${crondir}/log/$HOST.mysql" ];then

  48.            #sms

  49.            #for mobile in $MOBILES;do

  50.                #echo "$HOST replication error" | /usr/local/bin/gammu --sendsms TEXT "$mobile" -unicode

  51.            #done

  52.            #mail

  53.            for mail in $MAILS;do

  54.                echo "$HOST replication error" | mail -s "$HOST replication error" $mail

  55.            done

  56.            #flag

  57.            echo "replication error" >"${crondir}/log/$HOST.mysql"

  58.            #log

  59.            echo "$check_date $HOST mysql replicaton error" >> $log

  60.        fi

  61.    fi

  62. #

  63. done

#
結束更多請:  linux 系統運維  37275208  vmware 虛擬化  166682360

相關文章
相關標籤/搜索