chore: 删除已废弃的 scripts/backup-db.sh(被 daily-backup.sh 替代)
Some checks failed
Deploy Backend / deploy (push) Has been cancelled
Some checks failed
Deploy Backend / deploy (push) Has been cancelled
This commit is contained in:
@@ -1,55 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ===========================================
|
||||
# 数据库备份脚本
|
||||
# 用途: 备份 PostgreSQL 数据库到本地文件
|
||||
# 建议: 每天通过 cron 执行一次
|
||||
# Crontab 示例:
|
||||
# 0 4 * * * /root/rust/rust_backend/scripts/backup-db.sh >> /root/rust/rust_backend/logs/backup.log 2>&1
|
||||
# ===========================================
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
DB_CONTAINER="1Panel-postgresql-FtMo"
|
||||
DB_NAME="${1:-milkydata}"
|
||||
DB_USER="milkydata"
|
||||
BACKUP_DIR="/root/rust/rust_backend/backups"
|
||||
RETENTION_DAYS=7
|
||||
|
||||
LOG_PREFIX="[$(date '+%Y-%m-%d %H:%M:%S')]"
|
||||
|
||||
echo "$LOG_PREFIX 开始备份数据库: ${DB_NAME}"
|
||||
|
||||
# 确保备份目录存在
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
|
||||
# 检查容器是否运行
|
||||
if ! docker ps --format '{{.Names}}' | grep -q "^${DB_CONTAINER}$"; then
|
||||
echo "$LOG_PREFIX 错误: Docker 容器 ${DB_CONTAINER} 未运行"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 执行备份(自定义格式,可压缩)
|
||||
BACKUP_FILE="${BACKUP_DIR}/${DB_NAME}_$(date +%Y%m%d_%H%M%S).dump"
|
||||
|
||||
echo "$LOG_PREFIX 导出到: ${BACKUP_FILE}"
|
||||
docker exec "$DB_CONTAINER" pg_dump -U "$DB_USER" -Fc "$DB_NAME" > "$BACKUP_FILE"
|
||||
|
||||
# 检查备份是否成功
|
||||
if [ -f "$BACKUP_FILE" ] && [ -s "$BACKUP_FILE" ]; then
|
||||
FILE_SIZE=$(du -h "$BACKUP_FILE" | cut -f1)
|
||||
echo "$LOG_PREFIX 备份成功: ${BACKUP_FILE} (${FILE_SIZE})"
|
||||
else
|
||||
echo "$LOG_PREFIX 错误: 备份文件为空或不存在"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 删除旧备份(保留 RETENTION_DAYS 天)
|
||||
echo "$LOG_PREFIX 清理 ${RETENTION_DAYS} 天前的旧备份..."
|
||||
find "$BACKUP_DIR" -name "${DB_NAME}_*.dump" -mtime "+${RETENTION_DAYS}" -delete
|
||||
|
||||
# 记录保留的备份
|
||||
echo "$LOG_PREFIX 当前备份列表:"
|
||||
ls -lh "$BACKUP_DIR"/*.dump 2>/dev/null || echo " (无备份文件)"
|
||||
|
||||
echo "$LOG_PREFIX 备份完成"
|
||||
Reference in New Issue
Block a user