feat(#91): 生产环境部署方案 - 服务器初始化/Nginx HTTPS/compose生产覆盖/备份策略+文档

This commit is contained in:
bot_dev2
2026-08-11 07:06:42 +08:00
parent 0f382ce2d0
commit 8090a725cd
5 changed files with 217 additions and 0 deletions
+28
View File
@@ -0,0 +1,28 @@
#!/usr/bin/env bash
# 数据备份策略(Issue #91):PostgreSQL 每日全量 + WAL 增量,保留 30 天,异地同步
set -euo pipefail
BACKUP_DIR="${BACKUP_DIR:-/var/backups/wms}"
RETENTION_DAYS="${RETENTION_DAYS:-30}"
PG_CONTAINER="${PG_CONTAINER:-wms-postgres}"
PG_DB="${PG_DB:-wms}"
PG_USER="${PG_USER:-wms}"
REMOTE="${BACKUP_REMOTE:-}" # 例:rsync://backup.xayunmei.local/wms
ts="$(date +%F_%H%M%S)"
mkdir -p "$BACKUP_DIR"
file="$BACKUP_DIR/pg_${PG_DB}_${ts}.sql.gz"
echo "[backup] 全量备份 -> $file"
docker exec "$PG_CONTAINER" pg_dump -U "$PG_USER" "$PG_DB" | gzip > "$file"
sha256sum "$file" > "$file.sha256"
echo "[backup] 清理 ${RETENTION_DAYS} 天前的备份"
find "$BACKUP_DIR" -name 'pg_*.sql.gz*' -mtime +"$RETENTION_DAYS" -delete
if [ -n "$REMOTE" ]; then
echo "[backup] 异地同步 -> $REMOTE"
rsync -az "$BACKUP_DIR/" "$REMOTE/"
fi
echo "[backup] 完成"