Bash script to batch backup/restore MySQL database

发布于 作者 量尺寸留下评论

Backupdatabases.sh: Back up the specified databases.

#!/bin/bash

# 数据库列表
databases=("DatabaseName001" "DatabaseName002"  "DatabaseName003" "DatabaseName004")

# 备份文件名前缀
backup_prefix="backup"
TZ=$(date "+%Y%m%d%H%M%S")

# 备份目录
backup_dir="."

# 备份每个数据库
for database in ${databases[@]}; do
    mysqldump -uroot -pYourPassword $database > $backup_dir/$backup_prefix-$database-$TZ.sql
done

Restoredatabases.sh: Import database backup.

#!/bin/bash

# 创建一个数组来存储文件名
declare -a sql_files

# 使用find命令找到所有.sql文件,并通过mapfile命令读取到数组中
mapfile -t sql_files < <(find . -maxdepth 1 -type f -name "*.sql")

# 通过文件名获取数据库名称并导入数据
for file in "${sql_files[@]}"; do
     filename="${file#*-}"
     filename="${filename%-*}"
     echo "start import $file to $filename:"
     mysql -uroot -pYourPassword $filename < $file
done

Note: The database should be created before restoring it.

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注