返回顶部

收藏

监控mysql启动情况并检测表错误修复

更多

给开发部同事用的测试服务器上MYSQL经常挂掉。。。都懒得理了。。写了个脚本自己检测错误修复表继续运行。。邮件报警功能等有空再补上去。。。

#!/bin/env bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
clear

username=
passwd=
mysqlhost=""

mysqllive(){
    num=0
    while [ `pidof mysqld` == "" ] ; do
        echo "$(date +%Y%m%d%H%m),MYSQL IS DOWN" >> /var/log/mysqlstat.log
        service mysql start
        num=`expr $num + 1`
            if [ $num -gt 11 ] ; then
                exit 1
            fi
        sleep 10
    done
    if [ $num -gt 0 ] ; then
        mysqlsamchk
    fi
}
mysqlsamchk(){
    mysqldata=`mysql -h$mysqlhost -u$username -p$passwd -e"show databases"|grep -vE "mysql|information_schema|performance_schema|Database"`
    for i in ${mysqldata[@]} ; do
        mytables=`mysql -h$mysqlhost -u$username -p$passwd -e"use $i;show tables;"|grep -vE "Tables_in_"`
        for j in ${mytables[@]} ; do
            table_status=`mysql -h$mysqlhost -u$username -p$passwd -e"check table $i.$j"|grep "error"`
            if [ ! "$table_status" == "" ] ; then
                mysql -h$mysqlhost -u$username -p$passwd -e"repair table $i.$j"
                echo "$(date +%Y%m%d%H%m),$i.$j be repair" >> /var/log/mysqlstat.log
            fi
        done

    done
#   day="$(date +%Y%m%d|cut -b 3-8) $(date +%H)"
#   grep "is marked as crashed and should be repaired" /var/log/mysql.err   
}

mysqllive
#该片段来自于http://outofmemory.cn

标签:shell,数据库

收藏

0人收藏

支持

0

反对

0

»更多 您可能感兴趣的代码
  1. 2014-06-11 11:32:53window postgresql备份脚本 by 玖夏
  2. 2014-12-06 20:01:24关闭MySQL数据库服务器 by zjbpku
  3. 2014-06-29 11:23:09shell检查并修复mysql数据库表 by 玖夏
  4. 2014-11-06 21:00:51Powershell访问SQL Server数据库查询返回结果集 by zjbpku
  5. 2014-04-28 11:10:17修改Oracle最大连接数 by xfk
  6. 2012-10-26 11:51:16备份还原mysql shell 脚本 by 甄码农
  7. 2014-07-17 11:32:47shell命令操作mongodb by zjbpku
  8. 2014-07-05 10:49:08mysql备份脚本 by 0晓风残月0
  9. 2014-07-08 09:41:54oracle备份脚本 by owensh
  10. 2014-08-18 21:32:36递归行计数 by 玖夏
  11. 2017-12-11 17:37:06表变量,代替临时表 by xuleaper
相关聚客文章
  1. 歪脖骇客 发表 2017-02-15 09:50:11 每天自动备份MySQL数据库的shell脚本
  2. root 发表 2015-05-03 07:18:01 MySQL数据库定时备份Shell脚本
  3. root 发表 2015-03-22 06:04:01 postgresql表数据监控设计
  4. yejr 发表 2015-03-27 10:01:17 [MySQL FAQ]系列 — 为什么要关闭query cache,如何关闭
  5. root 发表 2015-04-11 07:28:01 一个20秒SQL慢查询优化的经历与处理方案
  6. 博主 发表 2011-05-07 00:00:00 修改数据库前缀之后
  7. root 发表 2015-04-15 06:40:01 Factless Fact Table
  8. 博主 发表 2015-04-08 14:24:46 shell-命令行下的光标移动等操作快捷键
  9. yejr 发表 2015-04-19 07:10:56 [MySQL FAQ]系列 — pt-table-checksum工具使用报错一例
  10. 博主 发表 2014-04-23 00:00:00 超简洁数据库
  11. David Walsh 发表 2015-04-23 11:34:29 Get Stock Quotes From Command Line
  12. 博主 发表 2013-09-21 10:12:00 Mosh - a shell tool better than SSH

发表评论