#!/usr/bin/env bash set -euo pipefail # Show disk usage by administrator and by stable folder. # Usage: # scripts/ops/netgescon-storage-report.sh # scripts/ops/netgescon-storage-report.sh --root storage/app/amministratori # scripts/ops/netgescon-storage-report.sh --admin KPL9F3XP ROOT_DIR="storage/app/amministratori" FILTER_ADMIN="" while [[ $# -gt 0 ]]; do case "$1" in --root) ROOT_DIR="$2" shift 2 ;; --admin) FILTER_ADMIN="$2" shift 2 ;; *) echo "Unknown option: $1" echo "Usage: $0 [--root
]"
exit 1
;;
esac
done
if [[ ! -d "$ROOT_DIR" ]]; then
echo "Error: root dir not found: $ROOT_DIR"
exit 1
fi
echo "== ROOT =="
echo "$ROOT_DIR"
echo
echo "== SPACE BY ADMINISTRATOR =="
if [[ -n "$FILTER_ADMIN" ]]; then
if [[ ! -d "$ROOT_DIR/$FILTER_ADMIN" ]]; then
echo "Error: administrator not found: $FILTER_ADMIN"
exit 1
fi
du -sh "$ROOT_DIR/$FILTER_ADMIN"
else
du -sh "$ROOT_DIR"/* 2>/dev/null | sort -h || true
fi
echo
echo "== SPACE BY STABILE =="
if [[ -n "$FILTER_ADMIN" ]]; then
STABILI_DIR="$ROOT_DIR/$FILTER_ADMIN/stabili"
if [[ -d "$STABILI_DIR" ]]; then
du -sh "$STABILI_DIR"/* 2>/dev/null | sort -h || echo "No stabili folders in $STABILI_DIR"
else
echo "No stabili dir for administrator: $FILTER_ADMIN"
fi
else
for admin_dir in "$ROOT_DIR"/*; do
[[ -d "$admin_dir" ]] || continue
admin_code="$(basename "$admin_dir")"
stabili_dir="$admin_dir/stabili"
if [[ -d "$stabili_dir" ]]; then
echo "-- $admin_code --"
du -sh "$stabili_dir"/* 2>/dev/null | sort -h || echo "No stabili folders"
echo
fi
done
fi