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