Files
awoooi/scripts/backup/backup-awoooi-db.sh
OG T 84cfdb6195 docs(backup): 備份審計完整盤點 + 新增 AWOOOI DB 與 Gitea DB 備份腳本
首席架構師備份審計結論:
- awoooi_prod PostgreSQL: 無備份 (P0 缺口)
- Gitea SQLite DB: 無備份 (今日已損壞,人工修復耗時 2h+)

新增:
- scripts/backup/backup-awoooi-db.sh (188 部署,02:00 daily)
- scripts/backup/backup-gitea-db.sh (110 部署,01:00 daily)
- docs/runbooks/BACKUP-STATUS.md (全景表 + 部署步驟 + SOP)
- LOGBOOK.md 備份審計段落

待手動部署:統帥需 scp 腳本至 188/110 並設定 crontab

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 01:01:58 +08:00

40 lines
1.6 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# =============================================================================
# AWOOOI PostgreSQL 每日備份腳本
# 2026-04-05 Claude Code: 盤點後發現 awoooi DB 無備份,依循 backup-momo-db.sh 規範建立
# 部署位置: /home/ollama/scripts/backup-awoooi-db.sh (on 192.168.0.188)
# cron: 0 2 * * * /home/ollama/scripts/backup-awoooi-db.sh >> /home/ollama/logs/backup-awoooi.log 2>&1
# =============================================================================
set -e
BACKUP_DIR="/home/ollama/backups/awoooi"
DATE=$(date +%Y-%m-%d_%H-%M)
RETENTION_DAYS=30
mkdir -p "$BACKUP_DIR"
echo "[$(date)] 開始 AWOOOI DB 備份..."
# awoooi_prod — 主要生產資料庫知識庫、事故、AutoRepair 決策等)
sudo -u postgres pg_dump awoooi_prod | gzip > "$BACKUP_DIR/awoooi_prod_${DATE}.sql.gz"
echo "[$(date)] ✅ awoooi_prod 備份完成"
# awoooi_dev — 開發資料庫
sudo -u postgres pg_dump awoooi_dev 2>/dev/null | gzip > "$BACKUP_DIR/awoooi_dev_${DATE}.sql.gz" || \
echo "[$(date)] ⚠️ awoooi_dev 備份跳過(可能不存在)"
# k3s_datastore — K3s Kine 資料庫
sudo -u postgres pg_dump k3s_datastore 2>/dev/null | gzip > "$BACKUP_DIR/k3s_datastore_${DATE}.sql.gz" || \
echo "[$(date)] ⚠️ k3s_datastore 備份跳過"
# 清理舊備份(保留 30 天)
find "$BACKUP_DIR" -name "*.sql.gz" -mtime +"$RETENTION_DAYS" -delete
echo "[$(date)] 清理超過 ${RETENTION_DAYS} 天的舊備份完成"
# 列出最新備份
echo "[$(date)] 目前備份清單:"
ls -lh "$BACKUP_DIR"/*.sql.gz 2>/dev/null | tail -10
echo "[$(date)] AWOOOI DB 備份完成!"