脚本检测mariadb主数据库可用性,实时切换到从数据库

编写shell脚本 检测主mysql服务可用性,不可用则修改/etc/hosts文件中的 ip与db服务器对应关系

#!/bin/bash
#20180911
#author by efoni

DB_SERVER=(
192.168.181.129 #master
192.168.181.130 #slave
)
MARIADB_HOST="mariadb.fnqh"
echo date +%Y-%m-%d-%H:%M:%S

DB_IP=ping -c 2 $MYSQL_HOST|awk 'NR==1 {print $3}'|sed 's/(//g;s/)//g'

mysql -h$MARIADB_HOST -uroot -pxxxxxx -e "show databases;" >>/dev/null 2>&1
CODE="$?"
while [$CODE -ne 0]
do
if ["$DB_IP" == "${DB_SERVER[1]"];then
sed -i "s/$DB_IP/${DB_SERVER[0]}/g" /etc/hosts
else
sed -i "s/$DB_IP/${DB_SERVER[1]}/g" /etc/hosts
fi
CODE=0
done

后台运行此脚本:
screen进入后台运行
输入while sleep 2;do sh auto_mariadb_monitor.sh ;done
或者nohup sh auto_mariadb_monitor.sh &后台运行
即可每隔2秒检测可用性并执行切换脚本。

猜你喜欢

转载自blog.51cto.com/efoni/2176235