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.