45 行
1.0 KiB
Bash
可执行文件
45 行
1.0 KiB
Bash
可执行文件
#!/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
|
|
echo "[ERR] STORAGE_DIR_HOST is required; implicit storage paths are forbidden" >&2
|
|
exit 1
|
|
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"
|