文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>修复指定数据库的所有表格脚本

修复指定数据库的所有表格脚本

时间:2010-05-18  来源:xhq6632

   
 

#!/bin/bash

LOGFILE="/home/cmd_shell/mysql_repair.log"
AUTH='-uroot -ppassword'
DBNAME=$2
printUsage() {
    echo "Usage: "
    echo "$0 <option> <dbname>"
    echo " --optimize/-O Optimize table"
    echo " --repair/-R Repairs a possibly corrupted table"
    echo " --help/-h This help text"
    return
}
doAllTables() {
    # get the table names

    echo "[`date +%c`] GET THE TABLE NAME OF $DBNAME" >>$LOGFILE 2>&1
    TABLENAMES=`mysql $AUTH -D $DBNAME -s -e "SHOW TABLES;"|grep -v 'Tables_in_'`
    echo -ne "[`date +%c`] TABLE LIST:\n$TABLENAMES\n" >>$LOGFILE 2>&1
    # loop through the tables and optimize them

    echo "[`date +%c`] $DBCMD TABLE BEGIN" >>$LOGFILE 2>&1
    for TABLENAME in $TABLENAMES
    do
# echo "[`date +%c`] $DBCMD TABLE \`$TABLENAME\`;" >>$LOGFILE 2>&1

        mysql $AUTH -D $DBNAME -e "$DBCMD TABLE \`$TABLENAME\`;" >>$LOGFILE 2>&1
    done
    echo "[`date +%c`] $DBCMD TABLE END" >>$LOGFILE 2>&1
}
if [ $# -lt 2 ] ; then

    printUsage
    exit 1
fi
case $1 in
    --optimize | -O) DBCMD=OPTIMIZE; doAllTables;;
    --repair | -R) DBCMD=REPAIR; doAllTables;;
    --help | -h) printUsage; exit 1;;
    *) printUsage; exit 1;;
esac


将代码存为mysqlrepair.sh 上传到服务器上,需要给执行权限 chmod +x mysqlrepair.sh 如果你的代码是在vi里面编辑的话,应该不会有什么问题,关键是,有时候不在vi编辑的。可能会报错   你就可以查看一下这个: http://blog.chinaunix.net/u1/37416/showart_2236413.html
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载