mysql主从配置 脚本监听 自动重连

下载croncie 使用rmp方式安装 **文件在我的微云 **

amoeba安装和配置

#!/bin/sh
 
# check_mysql_slave status
 
ip=eth0 #网卡名称
 
mysql_binfile=mysql
 
mysql_user=root #MySQL数据库账号
 
mysql_pass='' #密码
 
mysql_sockfile=/var/lib/mysql/mysql.sock
 
datetime=`date +"%Y-%m-%d/%H:%M:%S"`  #获取当前时间
 
mysql_slave_logfile=/home/logs/check_mysql_slave.log  #日志文件路径,必须提前创建好
 
slave_ip=`ifconfig $ip|grep "inet addr" | awk -F[:" "]+ '{print $4}'`

mastatus="$mysql_binfile -h 118.xx8.xx.52 -u$mysql_user -p$mysql_pass -P 3306"

file=`$mastatus -e "show master status\G" | grep File | awk ' {print $2}'`

pos=`$mastatus -e "show master status\G" | grep Position | awk ' {print $2}'`

echo "$datetime mastatus $mastatus" >> $mysql_slave_logfile

echo "$datetime  file=$file pos=$pos" >> $mysql_slave_logfile
 
 
status=$($mysql_binfile -u$mysql_user -p$mysql_pass -S $mysql_sockfile -e "show slave status\G" | grep -i "running")
 
Slave_IO_Running=`echo $status | grep Slave_IO_Running | awk ' {print $2}'`
 
Slave_SQL_Running=`echo $status | grep Slave_SQL_Running | awk '{print $2}'`
 
if [ "$Slave_IO_Running" = "Yes" -a "$Slave_SQL_Running" = "Yes" ]
 
then echo "$datetime $slave_ip Slave is Running!" >> $mysql_slave_logfile
 
else

echo " $datetime $slave_ip Slave is not running!" >> $mysql_slave_logfile
 
$mysql_binfile -u$mysql_user -p$mysql_pass -S $mysql_sockfile -e "stop slave;change master to master_host='118.xx8.xx.52',master_port=3306,master_user='xxxx',master_password='xxxxx%$^5',master_log_file='$file',master_log_pos=$pos;SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;start slave;"
 
fi

猜你喜欢

转载自my.oschina.net/u/1052192/blog/1023397