MySQL 周期性备份指定数据库 脚本

#!/bin/bash

# 获取当前日期
current_date=$(date +%Y%m%d%H)

# MySQL 连接参数
db_user="root"
db_password="***"

# 备份文件路径
backup_dir="/home/git/sqlbak"

# 数据库列表
databases=("gogs" "pay" "phpcase" "goapi")

# 遍历数据库列表备份每个数据库
for db_name in "${databases[@]}"; do
    # 备份文件名
    backup_file="${backup_dir}/${db_name}_${current_date}.sql"

    # 创建备份目录
    mkdir -p ${backup_dir}

    # 执行备份
    docker exec mysql mysqldump -u ${db_user} -p${db_password} ${db_name} >${backup_file}

    echo "数据库 ${db_name} 备份已完成,备份文件保存在 ${backup_file}"
done

# 删除7天前的备份文件
find ${backup_dir} -type f -name "*.sql" -mtime +3 -delete
echo "已删除3天前的备份文件"
copy success
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32