首页 电脑 电脑学堂 查看内容

linux备份Mysql数据库shell

2012-3-29 10:35 529 0

摘要: 欢迎拍砖,详细内容如下:    # MYSQL 数据文件路径  MYSQL_DATA_PATH="/usr/local/mysql/data/"  &n...
关键词: nbsp dbName MYSQL 备份 FULLPATH dumpName echo DUMP printf MYSQLDUMP

欢迎拍砖,详细内容如下:    # MYSQL 数据文件路径  MYSQL_DATA_PATH="/usr/local/mysql/data/"    # 备份目录  MYSQL_DUMP_PATH="***/DB/"    # 备份用户名  MYSQL_ACCOUNT="mysql_backup"    # 备份密码  MYSQL_PASSWORD="mysql_backup"    MYSQLDUMP_OPTS="mysqldump -u$MYSQL_ACCOUNT -p$MYSQL_PASSWORD --single-transaction"    # 压缩命令  bzip2 -k 保留源文件  TAR_OPTS="bzip2 "    # 单个数据库进行备份  function BackDB(){          FULLPATH="$1"            #遍历目录          for dbName in $(/bin/ls $FULLPATH)          do                  # check is database                  fileType=`/usr/bin/file $FULLPATH$dbName | /bin/awk '{FS=":"} {printf $2}'`                    # 文件夹的类型为directory                  if [ "directory" == $fileType ]; then                          # start dump                          if [ "$dbName" == "mysql" ] \                                  || [ "$dbName" == "test" ] \                                  || [ "$dbName" == "information_schema" ] \                                  || [ "$dbName" == "performance_schema" ]; then                                  echo "------------->$dbName not need dump!!"                          else                                  echo $dbName  www.2cto.com                                   dumpName=$MYSQL_DUMP_PATH/"$dbName"_"$DATESTR"                                  $MYSQLDUMP_OPTS $dbName > "$dumpName".sql                                    # 压缩备份档                                  $TAR_OPTS "$BACKUP_NAME".sql                          fi                  else                          printf '%s is not database            ######## \n' $dbName                  fi          done  }    # 每个数据表单独备份  function BackDBTB(){          FULLPATH="$1"            #遍历目录          for fName in $(/usr/bin/find $FULLPATH -name "*.ibd")          do                  dbPath=`echo "$fName" | /bin/awk 'BEGIN {FS="'$FULLPATH'"} {printf $2}'`                  # get database name                  dbName=`echo "$dbPath" | /bin/awk 'BEGIN {FS="/"} {printf $1}'`                  # get table name                  tbName=`echo "$dbPath" | /bin/awk 'BEGIN {FS="/"} {printf $2}'`                    # start dump                  if [ "$dbName" == "mysql" ]\                          || [ "$dbName" == "test" ] \                          || [ "$dbName" == "information_schema" ] \                          || [ "$dbName" == "performance_schema" ]; then                          echo "------------->$dbName not need dump!!"                  else                          echo $dbName $tbName                             dumpName=$MYSQL_DUMP_PATH/"$dbName"_"$tbName"_"$DATESTR"                          $MYSQLDUMP_OPTS $dbName $tbName > "$dumpName".sql                            # 压缩备份档                          $TAR_OPTS "$dumpName".sql                  fi          done  }          作者 babaoqi
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部