31 lines
812 B
Bash
Executable File
31 lines
812 B
Bash
Executable File
#!/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"
|