以下分别为你提供针对 MySQL 和 PostgreSQL 数据库的备份脚本示例,脚本语言使用常见的 Bash 脚本,你可以根据实际使用的数据库类型进行选择。

MySQL 数据库备份脚本

脚本思路

该脚本会连接到 MySQL 数据库,使用 mysqldump 命令将指定数据库备份到指定目录,并以日期作为文件名,同时会保留最近 7 天的备份文件,删除过期的备份。

脚本代码

#!/bin/bash

# 数据库连接信息
DB_USER="your_username"
DB_PASSWORD="your_password"
DB_NAME="your_database_name"
# 备份存储目录
BACKUP_DIR="/path/to/backup"
# 保留备份的天数
DAYS_TO_KEEP=7

# 创建备份目录(如果不存在)
mkdir -p $BACKUP_DIR

# 获取当前日期
DATE=$(date +%Y%m%d)

# 备份文件名
BACKUP_FILE="$BACKUP_DIR/${DB_NAME}_$DATE.sql"

# 执行备份
mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_FILE

# 检查备份是否成功
if [ $? -eq 0 ]; then
    echo "数据库备份成功:$BACKUP_FILE"
else
    echo "数据库备份失败"
fi

# 删除过期的备份
find $BACKUP_DIR -type f -mtime +$DAYS_TO_KEEP -exec rm {} \;

使用方法

  1. 将脚本保存为一个文件,例如 mysql_backup.sh
  2. 修改脚本中的 DB_USERDB_PASSWORDDB_NAMEBACKUP_DIR 为实际的值。
  3. 给脚本添加执行权限:chmod +x mysql_backup.sh
  4. 运行脚本:./mysql_backup.sh

PostgreSQL 数据库备份脚本

脚本思路

该脚本会连接到 PostgreSQL 数据库,使用 pg_dump 命令将指定数据库备份到指定目录,并以日期作为文件名,同时会保留最近 7 天的备份文件,删除过期的备份。

脚本代码

#!/bin/bash

# 数据库连接信息
DB_USER="your_username"
DB_NAME="your_database_name"
# 备份存储目录
BACKUP_DIR="/path/to/backup"
# 保留备份的天数
DAYS_TO_KEEP=7

# 创建备份目录(如果不存在)
mkdir -p $BACKUP_DIR

# 获取当前日期
DATE=$(date +%Y%m%d)

# 备份文件名
BACKUP_FILE="$BACKUP_DIR/${DB_NAME}_$DATE.sql"

# 执行备份
pg_dump -U $DB_USER $DB_NAME > $BACKUP_FILE

# 检查备份是否成功
if [ $? -eq 0 ]; then
    echo "数据库备份成功:$BACKUP_FILE"
else
    echo "数据库备份失败"
fi

# 删除过期的备份
find $BACKUP_DIR -type f -mtime +$DAYS_TO_KEEP -exec rm {} \;

使用方法

  1. 将脚本保存为一个文件,例如 postgres_backup.sh
  2. 修改脚本中的 DB_USERDB_NAMEBACKUP_DIR 为实际的值。
  3. 给脚本添加执行权限:chmod +x postgres_backup.sh
  4. 运行脚本:./postgres_backup.sh

注意事项

  • 确保服务器上已经安装了 mysqldumppg_dump 工具。
  • 脚本中的密码以明文形式存储,建议在生产环境中使用更安全的方式管理密码,例如使用环境变量或配置文件。
  • 可以将脚本添加到定时任务(如 cron)中,实现定期自动备份。
Copyright © https://yan-jian.com 2023 all right reserved更新时间: 2025-02-06 09:22:39

results matching ""

    No results matching ""