#!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" BACKUP_DIR="${BACKUP_DIR:-$ROOT_DIR/deploy/trialrun/backups}" mkdir -p "$BACKUP_DIR" TS="$(date +%Y%m%d_%H%M%S)" OUT_FILE="${OUT_FILE:-$BACKUP_DIR/hyb-oa-storage-${TS}.tar.gz}" if [[ -e "$OUT_FILE" ]]; then echo "[ERR] backup output already exists: $OUT_FILE" >&2 exit 1 fi STORAGE_DIR_HOST="${STORAGE_DIR_HOST:-}" if [[ -z "$STORAGE_DIR_HOST" ]]; then if [[ -n "${STORAGE_DIR:-}" && -d "${STORAGE_DIR:-}" ]]; then STORAGE_DIR_HOST="$STORAGE_DIR" elif [[ -d "$ROOT_DIR/deploy/trialrun/data/storage" ]]; then STORAGE_DIR_HOST="$ROOT_DIR/deploy/trialrun/data/storage" else echo "[ERR] storage dir not found; set STORAGE_DIR_HOST" >&2 exit 1 fi fi if [[ ! -d "$STORAGE_DIR_HOST" ]]; then echo "[ERR] storage dir not found: $STORAGE_DIR_HOST" >&2 exit 1 fi mkdir -p "$(dirname "$OUT_FILE")" echo "[INFO] Storage backup start: $OUT_FILE" echo "[INFO] Storage dir: $STORAGE_DIR_HOST" if ! tar -czf "$OUT_FILE" -C "$STORAGE_DIR_HOST" .; then rm -f -- "$OUT_FILE" echo "[ERR] storage backup failed" >&2 exit 1 fi if [[ ! -s "$OUT_FILE" ]]; then echo "[ERR] storage backup is empty: $OUT_FILE" >&2 exit 1 fi echo "[OK] Storage backup done: $OUT_FILE"