首席架構師備份審計 — 全部自動化完成: - backup-awoooi.sh:新增 AWOOOI PostgreSQL 備份腳本 - awoooi_prod (KB/事故/AutoRepair/Drift) + k3s_datastore - 從 110 SSH 到 188 執行 pg_dump,整合進 restic - 首次執行:680K,9s,snapshot 8750748f ✅ - backup-all.sh v2.0:整合第 4 個服務 AWOOOI DB - GFS 保留策略延長: - 每日 7→30 份(覆蓋最近 30 天) - 每週 4→12 份(覆蓋最近 3 個月) - 每月 6→24 份(覆蓋最近 2 年) - BACKUP-STATUS.md:更新為全自動化狀態總覽 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
81 lines
3.2 KiB
Bash
Executable File
81 lines
3.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# =============================================================================
|
|
# WOOO AIOps - 全服務備份總控腳本
|
|
# 版本: 2.0.0
|
|
# 建立日期: 2026-03-12
|
|
# 2026-04-05 Claude Code: 加入 AWOOOI DB (v1→v2) — 首席架構師備份審計
|
|
# =============================================================================
|
|
|
|
set -euo pipefail
|
|
|
|
# 載入共用函式
|
|
source "$(dirname "$0")/common.sh"
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# 主函式
|
|
# -----------------------------------------------------------------------------
|
|
main() {
|
|
local start_time=$(date +%s)
|
|
local failed=0
|
|
local total=4
|
|
|
|
log_info "╔══════════════════════════════════════════════════════════════╗"
|
|
log_info "║ WOOO AIOps - 全服務備份開始 (v2.0) ║"
|
|
log_info "╚══════════════════════════════════════════════════════════════╝"
|
|
|
|
# 備份 Gitea
|
|
log_info ">>> [1/${total}] 備份 Gitea..."
|
|
if /backup/scripts/backup-gitea.sh; then
|
|
log_success " Gitea 備份成功"
|
|
else
|
|
log_error " Gitea 備份失敗"
|
|
((failed++))
|
|
fi
|
|
|
|
# 備份 MOMO Pro
|
|
log_info ">>> [2/${total}] 備份 MOMO Pro..."
|
|
if /backup/scripts/backup-momo.sh; then
|
|
log_success " MOMO Pro 備份成功"
|
|
else
|
|
log_error " MOMO Pro 備份失敗"
|
|
((failed++))
|
|
fi
|
|
|
|
# 備份 Harbor
|
|
log_info ">>> [3/${total}] 備份 Harbor..."
|
|
if /backup/scripts/backup-harbor.sh; then
|
|
log_success " Harbor 備份成功"
|
|
else
|
|
log_error " Harbor 備份失敗"
|
|
((failed++))
|
|
fi
|
|
|
|
# 備份 AWOOOI DB (awoooi_prod + k3s_datastore)
|
|
# 2026-04-05 Claude Code: 首席架構師備份審計後加入
|
|
log_info ">>> [4/${total}] 備份 AWOOOI DB..."
|
|
if /backup/scripts/backup-awoooi.sh; then
|
|
log_success " AWOOOI DB 備份成功"
|
|
else
|
|
log_error " AWOOOI DB 備份失敗"
|
|
((failed++))
|
|
fi
|
|
|
|
local end_time=$(date +%s)
|
|
local duration=$((end_time - start_time))
|
|
|
|
log_info "╔══════════════════════════════════════════════════════════════╗"
|
|
if [ $failed -eq 0 ]; then
|
|
log_success "║ 全服務備份完成 (${duration}s) - 全部成功 (${total}/${total}) ║"
|
|
notify_clawbot "success" "all" "全服務備份完成 (${total}/${total} 成功)" "${duration}"
|
|
else
|
|
log_error "║ 全服務備份完成 (${duration}s) - ${failed} 個失敗 ($((total-failed))/${total}) ║"
|
|
notify_clawbot "warning" "all" "全服務備份完成 ($((total-failed))/${total} 成功)" "${duration}"
|
|
fi
|
|
log_info "╚══════════════════════════════════════════════════════════════╝"
|
|
|
|
return $failed
|
|
}
|
|
|
|
# 執行
|
|
main "$@"
|