Home  >  Article  >  Database  >  MySQL 复制检测脚本

MySQL 复制检测脚本

WBOY
WBOYOriginal
2016-06-07 16:59:531173browse

以下是根据网上的脚本整理,并结合实际进行改进。#!/bin/shusage=quot;$0 -hlocalhost -uroot -pxxxx -P3306quot;dbhost=quot

以下是根据网上的脚本整理,并结合实际进行改进。

#!/bin/sh

usage="$0 -hlocalhost -uroot -pxxxx -P3306"
dbhost="localhost"
dbuser=""
dbpass=""
dbport=3306

for varin in $* ; do
 if [ ${varin:0:2} = '-h' ] ; then
     dbhost=${varin:2}
  fi
 if [ ${varin:0:2} = '-u' ] ; then
     dbuser=${varin:2}
  fi
 if [ ${varin:0:2} = '-p' ] ; then
     dbpass=${varin:2}
  fi

 if [ ${varin:0:2} = '-P' ] ; then
     dbport=${varin:2}
  fi
done

echo $dbhost
echo $dbuser
echo $dbpass
echo $dbport

now=`date +"%Y%m%d%H%M%S"`
datelog=`date +"%Y-%m-%d %H:%M:%S"`
StatFile="./slave_status.$now"
checklogfile="/var/log/mysql_slavecheck.log"
echo "show slave status\G" | /usr/local/mysql/bin/mysql -u$dbuser -p$dbpass -h$dbhost -P$dbport > $StatFile


#get io_thread,sql_thread,last_errno status
#*************************** 1. row ***************************
#             Slave_IO_State: Connecting to master
#                Master_Host: 192.168.213.5
#                Master_User: synuser
#                Master_Port: 3306
#              Connect_Retry: 60
#            Master_Log_File: mysql-bin.000019
#        Read_Master_Log_Pos: 366270403
#             Relay_Log_File: Test-Web1-relay-bin.003133
#              Relay_Log_Pos: 98
#      Relay_Master_Log_File: mysql-bin.000019
#           Slave_IO_Running: No
#          Slave_SQL_Running: Yes
#            Replicate_Do_DB:
#        Replicate_Ignore_DB:
#         Replicate_Do_Table:
#     Replicate_Ignore_Table:
#    Replicate_Wild_Do_Table:
#Replicate_Wild_Ignore_Table:
#                 Last_Errno: 0
#                 Last_Error:
#               Skip_Counter: 0
#        Exec_Master_Log_Pos: 98
#            Relay_Log_Space: 98
#            Until_Condition: None
#             Until_Log_File:
#              Until_Log_Pos: 0
#         Master_SSL_Allowed: No
#         Master_SSL_CA_File:
#         Master_SSL_CA_Path:
#            Master_SSL_Cert:
#          Master_SSL_Cipher:
#             Master_SSL_Key:
#      Seconds_Behind_Master: NULL
IOSTAT=`grep "Slave_IO_Running" $StatFile |awk '{print $2}'`
SQLSTAT=`grep "Slave_SQL_Running" $StatFile |awk '{print $2}'`
Last_Errno=`grep "Last_Errno" $StatFile |awk '{print $2}'`
Last_Error=`grep "Last_Error" $StatFile |awk '{print $2}'`
Behind_Master=`grep "Seconds_Behind_Master" $StatFile |awk '{print $2}'`
if [ $IOSTAT = 'No' ] || [ $SQLSTAT = 'No' ] ; then
   echo "Server $dbhost:$dbport Slave is down,Check Time is :$datelog " > $checklogfile

if [ $Behind_Master = 'NULL' ] ; then
   echo "Server $dbhost:$dbport Slave not support slave-master,Check Time is :$datelog " >> $checklogfile
else
   echo ">>Last_ErrNo:$Last_Errno" >>$checklogfile
   echo ">>Last_Error:$Last_Error" >>$checklogfile
   echo ">>slave is behind master $Behind seconds!" >>$checklogfile
fi
fi
/bin/rm -rf $StatFile

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn