除了zabbix的利用,也可直接为脚本监控mysql主从同步状态
#!/bin/bash
to_masterTCP=$(/usr/bin/nmap -P0 192.168.101.28 -p 3306 | grep open)
if [ ! -n "$to_masterTCP" ];
then
echo "to_masterTCP-timeout"
exit 1
fi
file=/tmp/mysql_s.log
> $file
mysql_c="/usr/bin/mysql -umybin -ppass2ksjXezd88"
$mysql_c -e "show slave status\G" 2>/dev/null > $file
n1=`wc -l $file |awk '{print $1}'`
file_c=`grep -c 'Slave_IO_Running:' $file`
if [ $file_c -ne 1 ]
then
echo "mysql.slave-error"
exit 1
fi
if [ $n1 -gt 0 ]
then
y1=`grep 'Slave_IO_Running:' $file |awk -F : '{print $2}' |sed 's/ //'`
y2=`grep 'Slave_SQL_Running:' $file |awk -F : '{print $2}' |sed 's/ //'`
if [ $y1 == No ] || [ $y2 == No ]
then
echo 'Slave_Running-No'
else
echo 'Yes'
fi
fi

该文章提供了一个使用Shell脚本来检查MySQL主从同步状态的方法,包括通过nmap检查主库端口,使用mysql命令获取Slave的状态,并设置Zabbix的Timeout以防止超时。此外,还讨论了为监控用户分配最小权限的问题。
1213

被折叠的 条评论
为什么被折叠?



