# docker-mysql-backup

返回索引

  • 脚本类型: shell
  • 脚本名称: docker-mysql-backup.sh
  • 脚本描述: docker 容器中的 mysql 备份
  • 运行环境: Linux, Mac

# 备份以 docker compose 方式运行的 mysql

#!/bin/bash
# MySQL backup script

set -e
BASE_DIR=$(pwd)
BACKUP_DIR="$BASE_DIR/data/backup"
BACKUPTIME=$(date +%Y%m%d-%H%M%S)

# 如果 BACKUP_DIR 不存在,则创建
if [ ! -d "$BACKUP_DIR" ]; then
    echo "Create backup directory $BACKUP_DIR"
    mkdir -p "$BACKUP_DIR"
fi

# 备份所有库
docker compose exec mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' >$BACKUP_DIR/all-$BACKUPTIME.sql

# 只备份cool数据库
# docker compose exec mysql sh -c 'exec mysqldump cool -uroot -p"$MYSQL_ROOT_PASSWORD"' >$BACKUP_DIR/cool-$BACKUPTIME.sql

# 删除7天前的备份文件
# find $BACKUP_DIR -mtime +7 -name "*.sql" -exec rm {} \;

TIP

脚本应在 docker-compose.yml 所在目录执行,如 mysql 服务名称不为 mysql,则需要修改脚本中的docker compose exec mysqldocker compose exec <mysql服务名称>.

可以通过docker compose ps查看服务名称.

可按示例修改脚本,只备份某个数据库.以及删除7天前的备份文件.

Last Updated: 2022/11/23 11:51:47