Press "Enter" to skip to content

mysql数据库备份脚本

Last updated on 2021年8月16日

总是忘记备份数据库,所以写了一个脚本来备份。

按提示设置相应的数据库选项和备份文件存放地即可。

#!/bin/bash
#获取当前时间
TODAY=$(date "+%Y%m%d_%H%M")
#定义备份文件目录
BACK_FOLDER="/mnt/db_back"
#数据库信息设置
HOST="localhost"
USRENAME="root"
PASSWORD="root"
DATABASE="test"

#定义备份文件名
FILE_NAME="${DATABASE}_${TODAY}.sql"
BACK_FILENAME="${BACK_FOLDER}/${FILE_NAME}"

#排除的数据表
EXCLUDED_TABLES=(
db_log
)
IGNORED_TABLES_STRING=''
for TABLE in "${EXCLUDED_TABLES[@]}"
do :
   IGNORED_TABLES_STRING+=" --ignore-table=${DATABASE}.${TABLE}"
done

#执行备份
/usr/bin/mysqldump -h${HOST} -u${USRENAME} -p${PASSWORD} --default-character-set=utf8 --set-gtid-purged=off ${IGNORED_TABLES_STRING} ${DATABASE} > ${BACK_FILENAME}

#压缩备份文件并删除源文件
cd ${BACK_FOLDER}
tar -zcf ${FILE_NAME}.tar.gz ${FILE_NAME} --remove-files

# 删除超时的跟压缩的文件
BEFORE=$(date -d"15 day ago" +%Y%m%d_%H%M)
rm -f "${DATABASE}_${BEFORE}.sql.tar.gz";

echo "finish BACK mysql database ${DATABASE}."

你也可以选择合适的备份方式,来随意修改。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code