300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > dz mysql导出shell_mysql数据备份并导入数据库shell脚本

dz mysql导出shell_mysql数据备份并导入数据库shell脚本

时间:2020-08-10 12:49:24

相关推荐

dz mysql导出shell_mysql数据备份并导入数据库shell脚本

#!/bin/bash

#############################################

#

#mysql手工导入,qa到dev

#

#############################################

exportQA_HOSTNAME=192.168.8.98

exportCONNECT_QA_MYSQL="mysql-h$QA_HOSTNAME-p3306-uyunwei-p123456"

exportDUMP_QA_MYSQL="mysqldump-h$QA_HOSTNAME-p3306-uyunwei-p123456"

exportCONNECT_DEV_MYSQL="mysql-h192.168.8.190-uinnodealing-p123456"

exportDB_NAME=""

exportBACK_DIR="/home/back/qa_mysql/"

exportEXT=".sql.gz"

#

#帮助-h

#@param

#

usage(){

echo-e"\nUsage:$(basename$0)[OPTIONS][database]"

echo-e"\t-ddatabasebackupandimportdatabase"

echo-e"\t-sdatabaseshowdatabasesize"

echo-e"defaultbackupdirectoryis"$BACK_DIR"\n"

}

#

#输出显示蓝色

#@param$1string

#

echo_blue(){

echo-e"\033[36m$1\033[0m";

}

#

#输出显示红色

#@param$1string

#

echo_red(){

echo-e"\033[31m$1\033[0m"

}

#

#检查数据库是否存在

#@param$1数据库名称

#

check_database_exists(){

localdbname=$1

query=$($CONNECT_QA_MYSQL-e"SELECTinformation_schema.SCHEMATA.SCHEMA_NAMEFROMinformation_schema.SCHEMATAwhereSCHEMA_NAME='${dbname}'"|grep$dbname)

if[-z"$query"];then

echo$(echo_red"ERROR:database$dbnamenotexists!")

exit;

fi

}

#

#显示数据库大小

#@param

#

show_database_size(){

localdbname=$1

echo$($CONNECT_QA_MYSQL-e"selectconcat(round(sum(DATA_LENGTH/1024/1024),2),'MB')as$dbnamefrominformation_schema.TABLESwheretable_schema='${dbname}'"|grepMB)

}

#

#备份数据库

#@param$1数据库名称

#@return1/01备份失败,0备份成功

#

backup_database(){

localdbname=$1

localfilename=$BACK_DIR$dbname$EXT

$DUMP_QA_MYSQL$dbname|gzip>$filename

if[$?-eq0];then

echo$filename

fi

}

#

#导入数据库

#@param$1要导入的数据库文件名

#@param$2数据库名称

#@return1/0

#

import_database(){

localfilename=$1

localdbname=$2

gunzip

return$?

}

#

#开始备份和导入数据

#@param$1

#

start_job(){

localdbname=$1

check_database_exists$dbname

echo-e"$dbnamesize:\n\t"$(echo_blue$(show_database_size$dbname))

echo"startbackup:"

filename=$(backup_database$dbname)

if[-n"$filename"];then

echo-e"\t"$(echo_blue$filename)

echo"startimport:"

import_database$filename$dbname

if[$?-eq0];then

echo-e"\t"$(echo_blue'importissuccess')

else

echo-e"\t"$(echo_red'importisfailure')

fi

fi

}

#显示帮助信息

if[!-n"$1"];then

usage

fi

#获取参数

whilegetopts:d:s:hoptions

do

case"$options"in

d)

start_job$OPTARG

;;

s)

echo-e"$OPTARGsizeis"$(echo_blue$(show_database_size$OPTARG))

;;

h)

usage

;;

*)

usage

;;

esac

done

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。