Mysql replication check脚本

来源:这里教程网 时间:2026-03-01 11:53:49 作者:

#!/usr/bin/env bash  base_dir="/home/mysql/mysql-5.7.20-linux-glibc2.12-x86_64"  mysql_host="10.1.1.1"  mysql_user="bkp_user"  mysql_psw="password"  mysql_port="3306"  function get_v()  {   if test -f  /tmp/mysql_slave.txt; then  #  for ((i=1;i<6;i++)); do  #   args$i=`awk -v i=$1 'NR==i {print $NF}' /tmp/mysql_slave.txt`   case $1 in     1)     args1=`awk 'NR==1 {print $NF}' /tmp/mysql_slave.txt`     ;;     2)     args2=`awk 'NR==2 {print $NF}' /tmp/mysql_slave.txt`     ;;     3)     args3=`awk 'NR==3 {print $NF}' /tmp/mysql_slave.txt`     ;;     4)     args4=`awk 'NR==4 {print $NF}' /tmp/mysql_slave.txt`     ;;     5)     args5=`awk 'NR==5 {print $NF}' /tmp/mysql_slave.txt`     ;;     *)     echo "usag: sh $0 1~5"   esac  #  done   else     echo "something errors!"     exit 0   fi  }  $base_dir/bin/mysql -h$mysql_host -u$mysql_user -p$mysql_psw -Pmysql_port -e 'show slave status\G;' |egrep 'Read_Master_Log_Pos|Exec_Master_Log_Pos|Master_Log_File|Relay_Master_Log_File|Seconds_Behind_Master' >/tmp/mysql_slave.txt  for ((i=1;i<6;i++)); do   get_v $i  done

if [ $args1 == $args3 -a $args2 == $args4 ]; then     echo "slave status ok!"  else     printf "seconds behind master: $args5\n"     printf "+%13s+%11s+\n" ------------- -----------     printf "|%13s|%11s|\n+-------------+-----------+\n" $args1 $args2     printf "|%13s|%11s|\n+-------------+-----------+\n" $args3 $args4  fi

相关推荐