NutzCN Logo
问答 docker 备份容器MySQL数据压缩定时删除
发布于 853天前 作者 Hamming 1555 次浏览 复制 上一个帖子 下一个帖子
标签:

添加定时任务即可 可以直接备份docker容器内MySQL 记录日志 并压缩 过期删除

创建容器时注意挂载/opt/盘即可

#!/bin/bash
#备份存储路径  Linux路径 非docker容器内路径
BACKUP_DIR='/opt/backups'
#日志备份路径
LOG_DIR='/opt/log'
#备份时间
BACK_TIME=`date +%Y%m%d%H%M%S`
#文件名
BACKUP_FILE_NAME=${BACK_TIME}.sql.gz
#需要备份的数据库,多个数据库用空格分开
MYSQL_DATABASE='investment_project_management'
#用户名
MYSQL_USER='backup'
#密码
MYSQL_PASSWORD='xQ5BWbej686CnBf'

#日志记录头部
echo "备份时间为${BACK_TIME},备份数据库表 ${MYSQL_DATABASE} 开始" >> ${LOG_DIR}/log.log
#正式备份数据库
for db in $MYSQL_DATABASE; do
  docker exec km-ipm-mysql sh -c "mysqldump -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${db} | gzip > ${BACKUP_DIR}/${BACKUP_FILE_NAME} 2>> ${LOG_DIR}/log.log";
#备份成功以下操作
if [ "$?" == 0 ];then
cd $BACKUP_DIR
#删除30天前备份,也就是只保存30天内的备份
find $BACKUP_DIR -name "*.sql.gz" -type f -mtime +30 -exec rm -rf {} \; > /dev/null 2>&1
echo "数据库表 ${MYSQL_DATABASE} 备份成功!!" >> ${LOG_DIR}/log.log
else
#备份失败则进行以下操作
echo "数据库表 ${MYSQL_DATABASE} 备份失败!!" >> ${LOG_DIR}/log.log
fi
done

0 回复
添加回复
请先登陆
回到顶部