检测mysql主从复制是否正常的shell脚本
2013-04-03 17:19
603 查看
http://www.zhaokunyao.com/archives/2371
检测mysql主从复制是否正常的shell脚本
以前写过一文,《检测mysqld是否活着的shell脚本》。
今天看到datacharmer放出来了一个检测主从复制是否正常的shell脚本,转载如下:
———6.2更新:
有人又写了一个新的脚本,用来Monitor and restart MySQL slaves.
下载地址: http://www.papablues.com/software/mysql_slaverestart.sh.gz
检测mysql主从复制是否正常的shell脚本
以前写过一文,《检测mysqld是否活着的shell脚本》。
今天看到datacharmer放出来了一个检测主从复制是否正常的shell脚本,转载如下:
#!/bin/bash #主服务器 USERNAME=msandbox PASSWORD=msandbox EXPECTED_MASTER_HOST=127.0.0.1 EXPECTED_MASTER_PORT=27371 #从服务器 SLAVE_HOST=127.0.0.1 SLAVE_PORT=27372 MYSQL="mysql -u $USERNAME -p$PASSWORD " MASTER="$MYSQL -h $EXPECTED_MASTER_HOST -P $EXPECTED_MASTER_PORT" SLAVE="$MYSQL -h $SLAVE_HOST -P $SLAVE_PORT" #查看主服务器状态 $MASTER -e 'SHOW MASTER STATUS\G' > mstatus #查看从服务器状态 $SLAVE -e 'SHOW SLAVE STATUS\G' > sstatus function extract_value { FILENAME=$1 VAR=$2 grep -w $VAR $FILENAME | awk '{print $2}' } #主服务器的binlog 和position Master_Binlog=$(extract_value mstatus File ) Master_Position=$(extract_value mstatus Position ) #从服务器上读取到的主服务器信息 Master_Host=$(extract_value sstatus Master_Host) Master_Port=$(extract_value sstatus Master_Port) #主从复制的进度 Master_Log_File=$(extract_value sstatus Master_Log_File) Read_Master_Log_Pos=$(extract_value sstatus Read_Master_Log_Pos) #从服务器的二个进程信息 Slave_IO_Running=$(extract_value sstatus Slave_IO_Running) Slave_SQL_Running=$(extract_value sstatus Slave_SQL_Running) ERROR_COUNT=0 #... if [ "$Master_Host" != "$EXPECTED_MASTER_HOST" ] then ERRORS[$ERROR_COUNT]="the slave is not replicating from the host that it is supposed to" ERROR_COUNT=$(($ERROR_COUNT+1)) fi #... if [ "$Master_Port" != "$EXPECTED_MASTER_PORT" ] then ERRORS[$ERROR_COUNT]="the slave is not replicating from the host that it is supposed to" ERROR_COUNT=$(($ERROR_COUNT+1)) fi if [ "$Master_Binlog" != "$Master_Log_File" ] then ERRORS[$ERROR_COUNT]="master binlog ($Master_Binlog) and Master_Log_File ($Master_Log_File) differ" ERROR_COUNT=$(($ERROR_COUNT+1)) fi POS_DIFFERENCE=$(echo ${Master_Position}-$Read_Master_Log_Pos|bc) if [ $POS_DIFFERENCE -gt 1000 ] then ERRORS[$ERROR_COUNT]="The slave is lagging behind of $POS_DIFFERENCE" ERROR_COUNT=$(($ERROR_COUNT+1)) fi if [ "$Slave_IO_Running" == "No" ] then ERRORS[$ERROR_COUNT]="Replication is stopped" ERROR_COUNT=$(($ERROR_COUNT+1)) fi if [ "$Slave_SQL_Running" == "No" ] then ERRORS[$ERROR_COUNT]="Replication (SQL) is stopped" ERROR_COUNT=$(($ERROR_COUNT+1)) fi if [ $ERROR_COUNT -gt 0 ] then EMAIL=myname@gmail.com SUBJECT="ERRORS in replication" BODY='' CNT=0 while [ "$CNT" != "$ERROR_COUNT" ] do BODY="$BODY ${ERRORS[$CNT]}" CNT=$(($CNT+1)) done echo $SUBJECT echo $BODY echo $BODY | mail -s "$SUBJECT" $EMAIL else echo "Replication OK" printf "file: %s at %'d\n" $Master_Log_File $Read_Master_Log_Pos fi |
有人又写了一个新的脚本,用来Monitor and restart MySQL slaves.
下载地址: http://www.papablues.com/software/mysql_slaverestart.sh.gz
相关文章推荐
- 写一个简单脚本检测mysql主从是否正常
- shell脚本trap信号和服务器跳板机,mysql自动化脚本,检测主从复制
- shell脚本监控MySQL服务是否正常
- CentOS下编写shell脚本来监控MySQL主从复制的教程
- CentOS下编写shell脚本来监控MySQL主从复制的教程
- 一键安装MySQL 主从复制SHELL脚本
- shell监控脚本实例―监控mysql主从复制
- shell监控脚本实例―监控mysql主从复制
- shell脚本:监控MySQL服务是否正常
- shell脚本 - 检测mysql是否可用
- MySQL主从复制监控shell脚本
- shell脚本:监控MySQL服务是否正常
- shell监控脚本-监控mysql 主从复制
- 批量检测Mysql复制状态的shell 脚本
- mysql主从复制监控shell脚本
- 简单检测mysql主从正常与否的脚本
- shell脚本检测mysql是否启动的方法
- web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份
- shell脚本:监控MySQL服务是否正常
- CentOS下编写shell脚本来监控MySQL主从复制的教程