使用脚本bash控制台命令定时备份mysql数据库,并自动删除7天以前备份
备份mysql数据库
使用bash控制台命令定时备份mysql数据库,并自动删除7天以前备份
#!/bin/bash
# 数据库凭据
DB_HOST="localhost"
DB_USER="root"
DB_PASSWORD="123456"
# 数据库名称列表
DB_NAMES=("tduck" "platform" "platform_tenant")
# 备份目录
BACKUP_DIR="/data/backup/"
# 检查备份目录是否存在,如果不存在则创建
mkdir -p "$BACKUP_DIR"
# 循环备份每个数据库
for DB_NAME in "${DB_NAMES[@]}"; do
# 删除超过7个的旧备份
cd "$BACKUP_DIR"
file_count=$(ls -1 | grep "^${DB_NAME}_[0-9]\{8\}\.sql" | wc -l)
if [ "$file_count" -gt 7 ]; then
ls -1t "${DB_NAME}_"*".sql" | tail -n +"$((file_count - 7 + 1))" | xargs -d '\n' rm -f --
fi
# 创建备份
/usr/bin/mysqldump -h"$DB_HOST" -u"$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" > "$BACKUP_DIR"/"${DB_NAME}_$(date +\%Y\%m\%d).sql"
done