dba551a518
Fix below linters errors E010 The "do" should be on same line as for E010 The "do" should be on same line as while E011 Then keyword is not on same line as if or elif keyword E020 Function declaration not in format ^function name {$ Ignore: E041 Arithmetic expansion using $[ is deprecated for $(( E042 local declaration hides errors E043 Arithmetic compound has inconsistent return semantics E044 Use [[ for non-POSIX comparisions Story: 2003366 Task: 24423 Change-Id: I8b6b72e702d3e89d1813772d6bf16819e28e818c Signed-off-by: Martin Chen <haochuan.z.chen@intel.com>
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
|