以下分别为你提供针对 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 {} \;
使用方法
- 将脚本保存为一个文件,例如
mysql_backup.sh
。 - 修改脚本中的
DB_USER
、DB_PASSWORD
、DB_NAME
和BACKUP_DIR
为实际的值。 - 给脚本添加执行权限:
chmod +x mysql_backup.sh
。 - 运行脚本:
./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 {} \;
使用方法
- 将脚本保存为一个文件,例如
postgres_backup.sh
。 - 修改脚本中的
DB_USER
、DB_NAME
和BACKUP_DIR
为实际的值。 - 给脚本添加执行权限:
chmod +x postgres_backup.sh
。 - 运行脚本:
./postgres_backup.sh
。
注意事项
- 确保服务器上已经安装了
mysqldump
或pg_dump
工具。 - 脚本中的密码以明文形式存储,建议在生产环境中使用更安全的方式管理密码,例如使用环境变量或配置文件。
- 可以将脚本添加到定时任务(如
cron
)中,实现定期自动备份。