![Al Bailey](/assets/img/avatar_default.png)
This review allows this repo to pass zuul. Bashate 2.1.1 was released Oct 6, 2022 It adds a more stict indentation check Fixed the new bashate error. Related-Bug: 1991971 Signed-off-by: Al Bailey <al.bailey@windriver.com> Change-Id: I4e86c2a5046fd7ab876ce8ca0e1ad9e6fdbaaf01
120 lines
3.0 KiB
Bash
120 lines
3.0 KiB
Bash
#!/bin/bash
|
|
# Usage: diskstats.sh
|
|
TOOLBIN=$(dirname $0)
|
|
|
|
# Initialize tools environment variables, and define common utility functions
|
|
. ${TOOLBIN}/engtools_util.sh
|
|
tools_init
|
|
if [ $? -ne 0 ]; then
|
|
echo "FATAL, tools_init - could not setup environment"
|
|
exit $?
|
|
fi
|
|
|
|
# Enable use of INTERVAL_SEC sample interval
|
|
OPT_USE_INTERVALS=1
|
|
|
|
# Print disk summary
|
|
function print_disk {
|
|
print_separator
|
|
TOOL_HIRES_TIME
|
|
|
|
# NOTES:
|
|
# --total (grand-total) is a new option, but don't necessarily want to add tmpfs
|
|
# or dummy filesystems.
|
|
# - use -H to print in SI (eg, GB, vs GiB)
|
|
# - can use -a to print all filesystems including dummy filesystems, but then
|
|
# there can be double-counting:
|
|
print_separator
|
|
cmd='df -h -H -T --local -t ext2 -t ext3 -t ext4 -t xfs --total'
|
|
${ECHO} "Disk space usage ext2,ext3,ext4,xfs,tmpfs (SI):"
|
|
${ECHO} "# ${cmd}" ; ${cmd} ; ${ECHO}
|
|
|
|
print_separator
|
|
cmd='df -h -H -T --local -i -t ext2 -t ext3 -t ext4 -t xfs --total'
|
|
${ECHO} "Disk inodes usage ext2,ext3,ext4,xfs,tmpfs (SI):"
|
|
${ECHO} "# ${cmd}" ; ${cmd} ; ${ECHO}
|
|
|
|
print_separator
|
|
cmd='drbd-overview'
|
|
${ECHO} "drbd disk usage and status:"
|
|
${ECHO} "# ${cmd}" ; ${cmd} ; ${ECHO}
|
|
|
|
print_separator
|
|
cmd='lvs'
|
|
${ECHO} "logical volumes usage and status:"
|
|
${ECHO} "# ${cmd}" ; ${cmd} ; ${ECHO}
|
|
|
|
print_separator
|
|
cmd='pvs'
|
|
${ECHO} "physical volumes usage and status:"
|
|
${ECHO} "# ${cmd}" ; ${cmd} ; ${ECHO}
|
|
|
|
print_separator
|
|
cmd='vgs'
|
|
${ECHO} "volume groups usage and status:"
|
|
${ECHO} "# ${cmd}" ; ${cmd} ; ${ECHO}
|
|
}
|
|
|
|
# Print disk static summary
|
|
function print_disk_static {
|
|
print_separator
|
|
cmd='cat /proc/scsi/scsi'
|
|
${ECHO} "Attached devices: ${cmd}"
|
|
${cmd}
|
|
${ECHO}
|
|
|
|
# fdisk - requires sudo/root
|
|
print_separator
|
|
cmd='fdisk -l'
|
|
if [ $UID -eq 0 ]; then
|
|
${ECHO} "List disk devices: ${cmd}"
|
|
${cmd}
|
|
else
|
|
WARNLOG "Skipping cmd=${cmd}, root/sudo passwd required"
|
|
fi
|
|
${ECHO}
|
|
|
|
# parted - requires sudo/root
|
|
print_separator
|
|
cmd='parted -l'
|
|
if [ $UID -eq 0 ]; then
|
|
${ECHO} "List disk devices: ${cmd}"
|
|
${cmd}
|
|
else
|
|
WARNLOG "Skipping cmd=${cmd}, root/sudo passwd required"
|
|
fi
|
|
${ECHO}
|
|
}
|
|
|
|
#-------------------------------------------------------------------------------
|
|
# MAIN Program:
|
|
#-------------------------------------------------------------------------------
|
|
# Parse input options
|
|
tools_parse_options "${@}"
|
|
|
|
# Set affinity of current script
|
|
CPULIST=""
|
|
set_affinity ${CPULIST}
|
|
|
|
LOG "collecting ${TOOLNAME} for ${PERIOD_MIN} minutes, with ${INTERVAL_SEC} second sample intervals."
|
|
|
|
# Print tools generic tools header
|
|
tools_header
|
|
|
|
# Print static disk information
|
|
print_disk_static
|
|
|
|
# Calculate number of sample repeats based on overall interval and sampling interval
|
|
((REPEATS = PERIOD_MIN * 60 / INTERVAL_SEC))
|
|
|
|
for ((rep=1; rep <= REPEATS ; rep++)); do
|
|
print_disk
|
|
sleep ${INTERVAL_SEC}
|
|
done
|
|
print_disk
|
|
LOG "done"
|
|
|
|
# normal program exit
|
|
tools_cleanup 0
|
|
exit 0
|