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