MySQL:定时备份数据和定期清理数据

时间:2021-06-16 00:41:24

定时备份和删除脚本

脚本中的变量需要改为自己的数据库信息

#!/bin/bash

#完成数据库的定时备份
#备份的路径
BACKUP=/data/backup
#当前的时间作为文件名
DATETIME=$(date +%Y%m%d%H%M%S)
#可以输出变量调试
#echo ${DATETIME}
#用户名
DB_USER=root
#密码
DB_PWD=123456
#备份数据库名
DATABASE=db_data

echo "==========开始备份==========="

BACKUP_FILENAME="${BACKUP}/${DATABASE}_${DATETIME}.sql.gz"

echo "备份时间: ${DATETIME}"
echo "备份路径: ${BACKUP_FILENAME}"

#创建备份的路径
#如果备份的路径文件夹存在就使用,否则创建
if [ ! -d "$BACKUP" ]; then
mkdir -p "$BACKUP"
fi

#执行mysql的备份数据库的指令
mysqldump -u${DB_USER} -p${DB_PWD} --databases $DATABASE | gzip > $BACKUP_FILENAME

#删除3天前的备份文件(-exec rm -rf {} \是固定写法,删除查询出来的数据)
find $BACKUP -mtime +3 -name "*.sql.gz" -exec rm -rf {} \;

echo "==========备份完成==========="

配置 crontab

# 每周执行一次数据备份
0 0 * * 0 bash /data/backup_data.sh

参考