docker 备份容器MySQL数据压缩定时删除

需求需要定时备份数据库 可以备份多个数据库 同时压缩 超过30天自动删除

#!/bin/bash
#备份存储路径  Linux路径 非docker容器内路径
BACKUP_DIR='/opt/backups'
#日志备份路径
LOG_DIR='/opt/backups'
#备份时间
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}";
#备份成功以下操作
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


实现数据库多表备份 压缩 过期删除 记录日志

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容