Collect partition info and unify storage table with disk, partition, and usage data
All checks were successful
Build-Publish / build (linux/arm64) (push) Successful in 13s
Build-Publish / build (linux/amd64) (push) Successful in 3s
Build-Publish / create-manifest (push) Successful in 8s
Build-Publish / publish-template (push) Successful in 15s

This commit is contained in:
j
2026-03-10 21:57:46 +13:00
parent 9d288b7430
commit a384352954
2 changed files with 78 additions and 24 deletions

View File

@@ -103,28 +103,36 @@ if [ -n "$total_kb" ] && [ -n "$available_kb" ]; then
echo "available_mb=$available_mb"
fi
# Physical disks
lsblk -b -n -o NAME,SIZE,TYPE 2>/dev/null | while read -r name size type; do
if [ "$type" = "disk" ]; then
echo "[disk:$name]"
echo "name=$name"
echo "size_bytes=$size"
# Physical disks and partitions
lsblk -b -n -P -o NAME,SIZE,TYPE,MOUNTPOINT,PKNAME 2>/dev/null | while read -r line; do
eval "$line"
if [ "$TYPE" = "disk" ]; then
echo "[disk:$NAME]"
echo "name=$NAME"
echo "size_bytes=$SIZE"
elif [ "$TYPE" = "part" ]; then
echo "[partition:$NAME]"
echo "name=$NAME"
echo "size_bytes=$SIZE"
echo "parent=$PKNAME"
echo "mount=$MOUNTPOINT"
fi
done
# Mounted filesystem usage
df -B1 --output=target,size,used,avail,pcent 2>/dev/null | tail -n +2 | while read -r mount total used avail percent; do
# Mounted filesystem usage (exclude virtual filesystems)
df -B1 --output=target,size,used,avail,pcent \
-x tmpfs -x devtmpfs -x squashfs -x overlay -x efivarfs -x nsfs \
2>/dev/null | tail -n +2 | while read -r mount total used avail percent; do
case "$mount" in
/|/home|/var|/tmp|/boot|/data*|/mnt*|/srv*|/opt*)
safename=$(echo "$mount" | tr '/' '_')
echo "[disk_usage:${safename}]"
echo "mount=$mount"
echo "total_bytes=$total"
echo "used_bytes=$used"
echo "available_bytes=$avail"
echo "usage_percent=${percent%\%}"
;;
/dev|/dev/*|/proc|/proc/*|/sys|/sys/*|/run|/run/*|/snap/*) continue ;;
esac
safename=$(echo "$mount" | tr '/' '_')
echo "[disk_usage:${safename}]"
echo "mount=$mount"
echo "total_bytes=$total"
echo "used_bytes=$used"
echo "available_bytes=$avail"
echo "usage_percent=${percent%\%}"
done
# GPUs