欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

linux备份Mysql数据库shell_MySQL

程序员文章站 2022-06-08 10:14:30
...
bitsCN.com
欢迎拍砖,详细内容如下: # 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 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 bitsCN.com
相关标签: 数据库 linux