首席架構師備份審計結論: - 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>
40 lines
1.6 KiB
Bash
40 lines
1.6 KiB
Bash
#!/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 備份完成!"
|