#!/bin/bash
USER="root"
PASSWD=""
SOCK=""
MYARYS=""
HOST=""
master_slave_status=""
for i in $USER $PASSWD $SOCK
do
if [ $USER ];then
MYARYS="-u$USER"
fi
if [ $PASSWD ];then
MYARYS="$MYARYS -p$PASSWD"
fi
if [ $SOCK ];then
MYARYS="$MYARYS -S$SOCK"
fi
if [ $HOST ];then
MYARYS="$MYARYS -h$HOST"
fi
done
#返回Yes 或者 No
mysql_master_slave_status(){
x1=`mysql $MYARYS -e "show slave status\G"| awk -F "[ \t:]+" '/Slave_IO_Running/{print $3}'`
x2=`mysql $MYARYS -e "show slave status\G"| awk -F "[ \t:]+" '/Slave_SQL_Running/{print $3}'`
#-z 判断字符串是否为空
if [ -z $x1 ]||[ -z $x2 ];then
echo "this host is master or this host havs no master slave duplication"
elif [ $x1 = Yes ]|| [ $x2 = Yes ];then
echo "good"
else
echo "error"
fi
}
master_slave_status=`mysql_master_slave_status`
if [ ! -d /home/linwei/script ];then
mkdir /home/linwei/script
fi
echo "`date +%Y-%m-%d`":$master_slave_status >> /home/linwei/script/master_slave.txt
USER="root"
PASSWD=""
SOCK=""
MYARYS=""
HOST=""
master_slave_status=""
for i in $USER $PASSWD $SOCK
do
if [ $USER ];then
MYARYS="-u$USER"
fi
if [ $PASSWD ];then
MYARYS="$MYARYS -p$PASSWD"
fi
if [ $SOCK ];then
MYARYS="$MYARYS -S$SOCK"
fi
if [ $HOST ];then
MYARYS="$MYARYS -h$HOST"
fi
done
#返回Yes 或者 No
mysql_master_slave_status(){
x1=`mysql $MYARYS -e "show slave status\G"| awk -F "[ \t:]+" '/Slave_IO_Running/{print $3}'`
x2=`mysql $MYARYS -e "show slave status\G"| awk -F "[ \t:]+" '/Slave_SQL_Running/{print $3}'`
#-z 判断字符串是否为空
if [ -z $x1 ]||[ -z $x2 ];then
echo "this host is master or this host havs no master slave duplication"
elif [ $x1 = Yes ]|| [ $x2 = Yes ];then
echo "good"
else
echo "error"
fi
}
master_slave_status=`mysql_master_slave_status`
if [ ! -d /home/linwei/script ];then
mkdir /home/linwei/script
fi
echo "`date +%Y-%m-%d`":$master_slave_status >> /home/linwei/script/master_slave.txt
本文介绍了一个用于检查MySQL主从复制状态的bash脚本。该脚本通过执行SQL命令来获取从库的运行状态,并据此判断主从复制是否正常工作。如果从库的状态为非活动状态,则会返回错误提示。
866

被折叠的 条评论
为什么被折叠?



