#!/bin/bash  
#连接的主机用户名密码
HOST=localhost
USER=root
PASSWD=123.com
#2>/dev/null表示忽略掉警告
#打印匹配包含"Slave_.*_Running:"这个值的行,*代表通配符
IO_SQL_STATUS=$(mysql -h$HOST -u$USER -p$PASSWD -e 'show slave status\G' 2>/dev/null |awk '/Slave_.*_Running:/{print $1$2}')
#遍历循环
for i in $IO_SQL_STATUS; do
#以:为分隔符去掉右边的值,*代表右边所有值
THREAD_STATUS_NAME=${i%:*}
#以:为分隔符去掉左边的值,*代表左边所有值
THREAD_STATUS=${i#*:}
#判断IO和SQL线程的状态是否为YES
if [ "$THREAD_STATUS" != "Yes" ]; then
#如果不为YES,那么就告警
echo "Error: MySQL Master-Slave $THREAD_STATUS_NAME status is $THREAD_STATUS!" |mail -s "Master-Slave Staus" lz13753705474@sina.com
fi
done
mysql -uroot -p123.com -e "show slave status\G;" |awk '/Slave_.*_Running:/ {print $1$2}'

crontab -e
#每一分钟监控一次
*/1 * * * * /bin/bash /root/2.sh >/dev/null 2>&1 &