使用shell检查并修复mysql数据库表的脚本

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/

复制代码

代码如下:

#!/bin/sh

#code by scpman

#功能:检查并修复mysql数据库表

#将此脚本加到定时中,脚本执行时,等会读库,列出要修复的所有表,然后计时,开始修复

#修复过程中将损坏的表记录下来,修复完成后,将损坏的表,发邮件通知。

fix_logs=/tmp/fix.log

user=

pass=

check_fix()

{

dblist=`/usr/bin/find /usr/dlm_db/mysql/ -type d | grep -vE “logs|_[1-9]|*bak|test”| sed -e “s#/usr/dlm_db/mysql/##g”`

echo start `date`>$fix_logs

for dbname in $dblist

do

echo $dbname

for tb_name in `/usr/bin/find  /usr/dlm_db/mysql/$dbname -type f | awk -F/ {print $NF} | awk -F. {print $1} | sort –

u`

do

mysql -u$user -p$pass  $dbname<>$fix_logs

check table $tb_name;

repair table $tb_name;

FFF

done

done

echo `date` done>>$fix_logs

}

send_logs()

{

msgip=10.0.7.44

IP=`cat /etc/rc.conf | grep -E “ifconfig_[em1|bce1]” | awk {print “IP:”$2}| sed -n 1p `

fix_info=`grep -rE “Error|start|done” $fix_logs`

/usr/bin/logger -p local1.info -h $msgip “the services: $IP mysql_table_fix_info:$fix_info”

}

check_fix

send_logs

免费资源网 – https://freexyz.cn/


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容