容器数据库
[root@localhost mysql.back]# cat backup_mysql.sh
#!/bin/bash
# 日志文件路径
log_file="/home/mysql.back/logs/backup_mysql.log"
# MySQL 容器信息
CONTAINER_NAME="fosow-biz-mysql"
MYSQL_USER="root"
MYSQL_PASSWORD="root"
# 备份目录
BACKUP_DIR="/home/mysql.back/data"
# 创建带有当前时间戳的备份文件
BACKUP_FILE="$BACKUP_DIR/mysql_backup_$(date +%Y%m%d%H%M%S).sql"
# 在 MySQL 容器内运行 mysqldump 命令备份所有数据库
docker exec $CONTAINER_NAME mysqldump -u$MYSQL_USER -p$MYSQL_PASSWORD --all-databases > $BACKUP_FILE
echo "备份完成: $BACKUP_FILE"
# 删除超过两天的备份文件
find "$BACKUP_DIR" -name "mysql_backup_*" -type f -mtime +2 -delete
物理机数据库
#!/bin/bash
# 日志文件路径
log_file="/home/mysql/logs/backup_mysql.log"
MYSQL_USER="root"
MYSQL_PASSWORD="123qqq...A"
# 备份目录
BACKUP_DIR="/home/mysql/"
# 创建带有当前时间戳的备份文件
BACKUP_FILE="$BACKUP_DIR/mysql_backup_$(date +%Y%m%d%H%M%S).sql"
# 使用 rsync 复制数据到备份目录
mysqldump -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" --all-databases > "$BACKUP_FILE"
# 检查 mysqldump 是否成功
if [ $? -eq 0 ]; then
echo "备份完成: $BACKUP_FILE" >> "$log_file"
else
echo "备份失败" >> "$log_file"
fi