38 lines
1.4 KiB
Bash
Executable File
38 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
BACKUP_DIR="${BACKUP_DIR:-/mnt2/homey-backup}"
|
|
MANIFEST="$BACKUP_DIR/manifest.json"
|
|
|
|
echo "========================================"
|
|
echo " Longhorn Volume Backup List"
|
|
echo "========================================"
|
|
echo ""
|
|
|
|
if [[ ! -f "$MANIFEST" ]]; then
|
|
echo "No manifest found at $MANIFEST"
|
|
echo "Run backup-longhorn-to-disk.sh first."
|
|
exit 1
|
|
fi
|
|
|
|
echo "Backup timestamp: $(grep -oP '"backup_timestamp":\s*"\K[^"]+' "$MANIFEST")"
|
|
echo "Source: $(grep -oP '"source_path":\s*"\K[^"]+' "$MANIFEST")"
|
|
echo "Total volumes: $(grep -oP '"total_volumes":\s*\K[0-9]+' "$MANIFEST")"
|
|
echo "Total size: $(grep -oP '"total_size_bytes":\s*\K[0-9]+' "$MANIFEST" | numfmt --to=iec-i --suffix=B)"
|
|
echo ""
|
|
echo "Volumes:"
|
|
echo "----------------------------------------"
|
|
|
|
grep -A5 '"volumes"' "$MANIFEST" | grep -E '"friendly_name"|"size_human"' | \
|
|
while read -r name_line; read -r size_line; do
|
|
name=$(echo "$name_line" | grep -oP '"friendly_name":\s*"\K[^"]+')
|
|
size=$(echo "$size_line" | grep -oP '"size_human":\s*"\K[^"]+')
|
|
pvc=$(grep -B1 "$name_line" "$MANIFEST" | grep -oP '"pvc_id":\s*"\K[^"]+' || echo "")
|
|
printf " %-30s %10s %s\n" "$name" "$size" "$pvc"
|
|
done
|
|
|
|
echo ""
|
|
echo "Commands:"
|
|
echo " Mount: ./scripts/mount-longhorn-volume.sh <name>"
|
|
echo " Restore: ./scripts/restore-longhorn-volume.sh <name>"
|