virtual-deployment/libvirt/show_diskusage.sh
Bailey Henry 364c46f73e Script to show host's and lab's disk usage
Script that assists with supervising host's resources, in this case disk
usage. Lists usage per node and overall usage.

Test plan:
PASS: no tox errors
PASS: information displayed is valid
PASS: does not affect nodes

Story: 2010816
Task: 48637

Change-Id: If874ffc3f02faa26521d305b1b6f5fe62096f06c
Signed-off-by: Bailey Henry <Henry.Bailey@windriver.com>
2023-08-25 13:50:28 +00:00

74 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
#
# SPDX-License-Identifier: Apache-2.0
#
# Copyright (c) 2023 Wind River Systems, Inc.
#
# Show the host's and lab's disk usage per configured disk
# The disk usage for each lab's configured disks
# (i.e., for each VM),
# and for each of the host's disks overall upon which the
# lab's virtual disks are presented.
if [ -z "$CONFIG_FILE" ]; then
echo 'No configuration file selected'
exit 1
fi
if ! [ -f "$CONFIG_FILE" ]; then
echo 'Configuration file does not exist'
exit 1
fi
DISK_DIRS=""
CONTROLLER0_DIR="$( ./config.py "$CONFIG_FILE" controllerlist 0 disk )"
CONTROLLER1_DIR="$( ./config.py "$CONFIG_FILE" controllerlist 1 disk )"
echo
if [ -n "$CONTROLLER0_DIR" ] && [ -d $CONTROLLER0_DIR ]; then
sudo du -sh $CONTROLLER0_DIR
DISK_DIRS="$DISK_DIRS $CONTROLLER0_DIR"
fi
if [ -n "$CONTROLLER1_DIR" ] && [ -d $CONTROLLER1_DIR ]; then
sudo du -sh $CONTROLLER1_DIR
DISK_DIRS="$DISK_DIRS $CONTROLLER1_DIR"
fi
if [ -n "$STORAGE_NODES_NUMBER" ]; then
index=0
while [ "$index" -le "$STORAGE_NODES_NUMBER" ]; do
host_dir="$( ./config.py "$CONFIG_FILE" storagelist "$index" disk )"
if [ -n "$host_dir" ] && [ -d $host_dir ]; then
sudo du -sh $host_dir
DISK_DIRS="$DISK_DIRS $host_dir"
fi
index+=1
done
fi
if [ -n "$WORKER_NODES_NUMBER" ]; then
index=0
while [ "$index" -le "$WORKER_NODES_NUMBER" ]; do
host_dir="$( ./config.py "$CONFIG_FILE" workerlist "$index" disk )"
if [ -n "$host_dir" ] && [ -d $host_dir ]; then
sudo du -sh $host_dir
DISK_DIRS="$DISK_DIRS $host_dir"
fi
index+=1
done
fi
echo
# Print a header
df -h $DISK_DIRS | grep "^Filesystem" | sed "s;Mounted on;Disk Path;"
(
for l in $DISK_DIRS; do
# Works assuming there is no space for directory name
sudo df -h $l | grep -v "^Filesystem" | sed "s;[^ ]\{1,\}$;$l;"
done
) | sort | uniq
echo