Collect partition info and unify storage table with disk, partition, and usage data
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user