备份所有数据库的脚本,一个数据库一个文件

#!/bin/bash

USER="root"
PASS="123456"
HOST="127.0.0.1"
PORT="3306"
BACKUP_DIR="./"
DATE=$(date +%F_%H-%M-%S)

mkdir -p ${BACKUP_DIR}/${DATE}

# 获取数据库列表
databases=$(mysql -u${USER} -p${PASS} -h${HOST} -P${PORT} -e "SHOW DATABASES;" \
| grep -Ev "(Database|information_schema|performance_schema|mysql|sys)")

for db in $databases; do
    echo "备份中: $db"

    mysqldump -u${USER} -p${PASS} -h${HOST} -P${PORT} \
    --single-transaction \
    --quick \
    --routines \
    --triggers \
    $db | gzip > ${BACKUP_DIR}/${DATE}/${db}.sql.gz

    if [ $? -eq 0 ]; then
        echo "✅ 成功: $db"
    else
        echo "❌ 失败: $db"
    fi
done

echo "🎉 所有数据库备份完成,目录: ${BACKUP_DIR}/${DATE}"


评论
暂无评论

登录后可发表评论

点击登录