dump
该备份脚本使用gpt生成,不得不感叹gpt的强大;普通工人+gpt简直能媲美专家了
#!/bin/bash
# 设置数据库登录信息和备份文件存储路径
DB_USER="root"
DB_PASS="my_pwd"
DB_NAME="database_name"
BACKUP_DIR="/var/backups/database"
# 创建备份文件存储目录(如果不存在)
if [ ! -d "$BACKUP_DIR" ];
then
mkdir -p "$BACKUP_DIR"
fi
# 备份数据库到目标路径
TIMESTAMP=$(date +%F-%H%M%S)
BACKUP_FILE="$BACKUP_DIR/$DB_NAME-backup-$TIMESTAMP.sql"
mysqldump -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" > "$BACKUP_FILE"
# 删除旧备份文件(仅保留最近的10个备份)
find "$BACKUP_DIR" -name "$DB_NAME-backup-*.sql" -type f -mtime +10 -delete
# obs 上传备份文件到
/root/download/obsutil_linux_amd64_5.5.12/obsutil cp /var/backups/database/${DB_NAME}-backup-$TIMESTAMP.sql obs://dongua/backup/mariaDB_family/
# obs 删除旧备份文件(仅保留最近的10个备份)
DEL_FILES=`find /var/backups/database -name "$DB_NAME-backup-*.sql" -type f -mtime +10`
for f in $DEL_FILES; do
DEL_FILE_NAME=${f:22:100}
/root/download/obsutil_linux_amd64_5.5.12/obsutil rm obs://ziga/backup/mariaDB_family/${DEL_FILE_NAME} -f
done
# 打印备份完成信息
echo "Database backup completed: $BACKUP_FILE"
curl 'https://oapi.dingtalk.com/robot/send?access_token=ca46xxxxx' \
-H 'Content-Type: application/json' \
-d '{"msgtype": "text","text": {"content":"【通知】mysql 数据库备份完成"}}'
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
33
34
35
36
37
38
39
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
33
34
35
36
37
38
39
编辑 (opens new window)
上次更新: 2024/01/17, 10:57:24