#!/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 ] [--admin ]" 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