
ubuntu16.04 脚本备份mysql数据库
发布日期:2021-05-14 23:02:34
浏览次数:17
分类:精选文章
本文共 1461 字,大约阅读时间需要 4 分钟。
创建并优化MySQL数据库备份脚本
为确保MySQL数据库的重要数据安全,我们可以通过手动创建一个自动备份脚本来实现定期数据备份和恢复的功能。以下是详细的操作步骤(脚本内容已压缩为附件)。
创建MySQL数据备份目录
sudo mkdir mysql_data
创建数据库备份脚本
touch mysql_databak.sh
备份单个数据库
将以下内容粘贴到mysql_databak.sh文件中:
#!/bin/bashDATE=$(date +%Y%m%d%H%M)DUMP=/usr/bin/mysqldumpOUT_DIR=/home/mysql_data/LINUX_USER=rootDB_NAME=blogDB_USER=rootDB_PASS=123456DAYS=7cd $OUT_DIROUT_SQL=$DATE.sqlTAR_SQL="mysqldata_bak_$DATE.tar.gz"$DUMP -u$DB_USER -p$DB_PASS $DB_NAME --default-character-set=gbk --opt -Q -R --skip-lock-tables > $OUT_SQLtar -czf $TAR_SQL ./$OUT_SQLrm $OUT_SQLchown $LINUX_USER:$LINUX_USER $OUT_DIR/$TAR_SQLfind $OUT_DIR -name "mysqldata_bak*" -type f -mtime +$DAYS -exec rm {} \;
备份多个数据库并打包文件
将以下内容粘贴到mysql_databak_admin.sh文件中:
#!/bin/bashDATE=$(date +%Y%m%d%H%M)DUMP=/usr/bin/mysqldumpBASE_DIR=/home/mysql_data/OUT_DIR="mysqldata_bak_$DATE"DB_NAMES=(blog mysql)DB_USER=rootDB_PASS=123456DAYS=7cd $BASE_DIRmkdir $OUT_DIR && cd $OUT_DIRfor DB_NAME in ${DB_NAMES[*]} do OUT_SQL=$DB_NAME.sql $DUMP -u$DB_USER -p$DB_PASS $DB_NAME --default-character-set=gbk --opt -Q -R --skip-lock-tables > $OUT_SQLdonecd $BASE_DIRTAR_DIR="$OUT_DIR.tar.gz"tar -zcvf $TAR_DIR $OUT_DIRrm -rf $OUT_DIRfind $BASE_DIR -name "mysqldata_bak*" -type f -mtime +$DAYS -exec rm {} \;
设置脚本可执行权限
sudo chmod 777 /home/mysql_data/mysql_databak.sh
以上步骤创建了一个自动化的MySQL数据库备份系统。每天系统将自动创建新的备份文件,并按固定的时间删除旧的备份文件(默认保留最近7天)。脚本支持单数据库和多数据库备份,并能够将多个数据库打包成一个压缩文件。
在实际操作前,请根据实际网络环境调整文件路径和数据库名称。如果需要更高频率的备份,或调整DAYS
值。