zoukankan      html  css  js  c++  java
  • 检查mysql数据库是否存在坏表脚本

     

     1 #!/bin/bash
     2 #此脚本的主要用途是检测mysql服务器上所有的db或者单独db中的坏表
     3 #变量说明 pass mysql账户口令 name mysql账号名称 data_path mysql目录路径 directory_list 目录列表 file_list文件列表 db_name 数据库名称 repair_count单库中待修复的表总数
     4 #变量说明 repair_count_all所有库中待修复的表总数 mysql_version mysql版本 _file_name 数据表名称
     5 echo -e "此脚本的主要用途是检测mysql服务器上所有的数据库或者单独数据库中的坏表
    
    "
     6 pass=123456
     7 name=root
     8 read -p "输入mysql存储路径: " choose
     9 data_path=$choose
    10 unset choose
    11 read -p "请输入mysql命令路径: " mysql_version
    12 #标准输入、标准输出、标准错误输出的文件标示符 由 01、2标识
    13 read -p "请选择是检查服务器上所有数据库还是指定的数据库 1:检查全部数据库 2:只检查指定数据库: " choose
    14 if[ $choose ==1];then
    15 cd $data_path
    16 for directory_list in $(ls)
    17 do
    18 if[-d $directory_list ];then
    19 if["mysql"!="${directory_list}"-a "test"!="${directory_list}"];then
    20 cd ${directory_list}
    21 echo "当前检查数据库为:"${directory_list}
    22 for file_list in $(ls *.frm)
    23 do
    24 _file_name=${file_list%.frm}
    25 echo -e "
    ">>/tmp/check_table_all.log
    26 ${mysql_version}-h 127.0.0.1-u${name}-p${pass}-e "check table "${directory_list}.${_file_name}2>&1>>/tmp/check_table_all.log
    27 done
    28 cd ..
    29 fi
    30 fi
    31 done
    32 cat /tmp/check_table_all.log | grep "Table is marked as crashed">/tmp/check_table_repair.log
    33 repair_count_all=` awk 'END{print NR}' /tmp/check_table_repair.log `
    34 echo -e "所有数据库用有${repair_count_all}张表需要修复!"
    35 more /tmp/check_table_repair.log
    36 else
    37 read -p "请输入要检查的数据库名称: " db_name
    38 cd ${data_path}/${db_name}
    39 for file_list in $(ls *.frm)
    40 do
    41 _file_name=${file_list%.frm}
    42 echo -e "
    ">>/tmp/check_${db_name}.log
    43 ${mysql_version}-h 127.0.0.1-u${name}-p${pass}-e "check table "${db_name}.$_file_name 2>&1>>/tmp/check_${db_name}.log
    44 done
    45 cat /tmp/check_${db_name}.log | grep "Table is marked as crashed">/tmp/check_${db_name}_Repair.log
    46 repair_count=`awk 'END{print NR}' /tmp/check_${db_name}_Repair.log`
    47 echo -e "${db_name}中共有${repair_count}个表需要修复!
     "
    48 more /tmp/check_${db_name}_Repair.log
    49 fi





  • 相关阅读:
    一文带你了解接口测试价值与体系
    干货|app自动化测试之设备交互API详解
    干货|app自动化测试之Appium问题分析及定位
    干货| app自动化测试之Andriod微信小程序的自动化测试
    如果你也有这些职场困惑,周六一直线上答疑
    文末福利 | 团队管理第一步之高效招聘
    精准化测试原理简介与实践探索
    文末有福利 | 面试时如何命中面试官的考题?
    Visual studio prebuild/postbuild 设置条件不生效
    使用腾讯地图api获取定位信息经纬度(需要浏览器支持,且需要https)
  • 原文地址:https://www.cnblogs.com/yangliheng/p/6125439.html
Copyright © 2011-2022 走看看