公司做了mysql主从,现用shell监控主从的状态:
#!/bin/bash
#set -x
#grant all privileges on *.* to 'repair'@'%' identified by 'repair';
#When found synchronous appear unable to synchronization time "will be automatically extracted the main library file number, and pos, synchronous primary library。
mstool="/usr/local/mysql/bin/mysql -h 192.168.11.128 -urepair -prepair -P 3306"
sltool="/usr/local/mysql/bin/mysql -h 192.168.11.129 -urepair -prepair -P 3306"
declare -a slave_stat
slave_stat=($($sltool -e "show slave status\G"|grep Running |awk '{print $2}'))
if [ "${slave_stat[0]}" = "Yes" -a "${slave_stat[1]}" = "Yes" ]
then
echo "OK slave is running"
exit 0
else
echo "Critical slave is error"
echo
echo "*********************************************************"
echo "Now Starting replication with Master Mysql!"
file=`$mstool -e "show master status\G"|grep "File"|awk '{print $2}'`
pos=`$mstool -e "show master status\G"|grep "Pos"|awk '{print $2}'`
$sltool -e "slave stop;change master to master_host='192.168.11.128',master_port=3306,master_user='replication',master_password='slave',master_log_file='$file',master_log_pos=$pos;slave start;"
sleep 3
$sltool -e "show slave status\G;"|grep Running
echo
echo "Now Replication is Finished!"
echo
echo "**********************************************************"
exit 2
fi