42 lines
1.1 KiB
Bash
Executable File
42 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
OUT_DIR="${1:?usage: collect_backup_restore_drill.sh <out_dir>}"
|
|
mkdir -p "$OUT_DIR"
|
|
|
|
ROOT="../vm-skills"
|
|
LATEST="$(find "$ROOT" -type f -name "*restore*drill*.json" 2>/dev/null | sort | tail -n 1 || true)"
|
|
|
|
file_mtime_epoch() {
|
|
local file="$1"
|
|
if stat -c %Y "$file" >/dev/null 2>&1; then
|
|
stat -c %Y "$file"
|
|
else
|
|
stat -f %m "$file"
|
|
fi
|
|
}
|
|
|
|
file_mtime_iso() {
|
|
local file="$1"
|
|
local mtime
|
|
mtime="$(file_mtime_epoch "$file")"
|
|
if date -u -r "$file" "+%Y-%m-%dT%H:%M:%SZ" >/dev/null 2>&1; then
|
|
date -u -r "$file" "+%Y-%m-%dT%H:%M:%SZ"
|
|
elif date -u -d "@${mtime}" "+%Y-%m-%dT%H:%M:%SZ" >/dev/null 2>&1; then
|
|
date -u -d "@${mtime}" "+%Y-%m-%dT%H:%M:%SZ"
|
|
else
|
|
date -u "+%Y-%m-%dT%H:%M:%SZ"
|
|
fi
|
|
}
|
|
|
|
if [[ -n "$LATEST" && -f "$LATEST" ]]; then
|
|
TS="$(file_mtime_iso "$LATEST")"
|
|
cat > "$OUT_DIR/backup_restore_drill.json" <<JSON
|
|
{"collected": true, "path": "$LATEST", "observed_at": "$TS"}
|
|
JSON
|
|
else
|
|
cat > "$OUT_DIR/backup_restore_drill.json" <<'JSON'
|
|
{"collected": false, "reason": "no restore drill artifacts found"}
|
|
JSON
|
|
fi
|