#!/usr/bin/env bash # 用途:備份 {{APP_NAME}} 資料 set -euo pipefail APP_NAME="{{APP_NAME}}" BASE_DIR="$(cd "$(dirname "$0")" && pwd)" BACKUP_DIR="$BASE_DIR/backup" TIMESTAMP=$(date +%Y%m%d-%H%M) echo "📦 備份 $APP_NAME..." # 建立備份目錄 mkdir -p "$BACKUP_DIR" # 取得 Pod 名稱 POD=$(kubectl get pod -l "app=$APP_NAME" -o jsonpath="{.items[0].metadata.name}") if [ -z "$POD" ]; then echo "❌ 找不到 $APP_NAME 的 Pod" exit 1 fi # 備份 PVC 資料(範例:假設是檔案資料) echo "備份 PVC 資料..." kubectl exec $POD -- tar czf /tmp/backup.tar.gz {{DATA_MOUNT_PATH|/data}} kubectl cp $POD:/tmp/backup.tar.gz "$BACKUP_DIR/$APP_NAME-$TIMESTAMP.tar.gz" kubectl exec $POD -- rm /tmp/backup.tar.gz echo "✅ 備份完成: $BACKUP_DIR/$APP_NAME-$TIMESTAMP.tar.gz"