介绍
本篇内容介绍了“怎么用shell脚本自动修复mysql损坏的表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
<强>问题描述:强>最近查看mysql数据库服务器日志,老发现有表损坏的错误日志,比如:120724 7:30:48(错误)/数据/软/mysql/libexec/mysqld:表& # 39;。/博客/wp_links& # 39;被标记为最后坠毁(自动)修复失败的手动修复了表后正常了,没过几天又发现出现错误。
<强>解决方法:强>于是就写了个脚本来自动修复。是根据一定时间检测一次日志,如果有这样的错误记录时,就对出错的表进行修复来达到自动修复的目的,为了防止日志中错误记录的重复执行,每次检测完日志后特将日志文件清空。
此类脚本的方法其实有很多,只不过这是其中一种而已,有错误之处大家提出来,多多指教。
# !/bin/sh , , DB_USER=皉oot", DB_PASS=?23456”, DB_NAME=癰log", LOG_PATH=?数据/db/errlog.log", 时间=' date + Y % - % - % d",“% H: % m: % S的,, 表='/usr/bin/awk & # 39;/& # 39;“repair failed" & # 39;/, {print $ 6} & # 39;, LOG_PATH 美元;|,sort -k1n |, uniq -c |, awk -F “& # 39;“, & # 39; {print $ 2} & # 39;, |, awk -F & # 39;/& # 39;, & # 39; {print 3美元}& # 39;’,, , if [, -n “TABLES"美元;,),, then , for 才能小姐:拷贝的/usr/bin/awk & # 39;/& # 39;“repair failed" & # 39;/, {print $ 6} & # 39;, LOG_PATH 美元;|,sort -k1n |, uniq -c |, awk -F “& # 39;“, & # 39; {print $ 2} & # 39;, |, awk -F & # 39;/& # 39;, & # 39; {print 3美元}& # 39;’,, do 才能; ,,,/数据/软/mysql/bin/mysql - u DB_USER 美元;- p DB_PASS 美元;DB_NAME 美元;-e “repair TABLE 我美元,祝辞,repair_小姐:美元, ,,,if grep “OK", repair_小姐:美元在/dev/null ,,,then , ,,,,,echo “TIME 美元;repair TABLES 小姐:美元成功!“, ,,,else ,,,,,echo “TIME 美元;repair TABLES 美元小姐:失败!“, ,,,fi , ,,,rm -rf repair_小姐:美元, ,,done else echo 才能“There  is no need 用repair 从而表!“, fi , :在$ LOG_PATH