diff --git a/kvmstats/kvmstats b/kvmstats/kvmstats index 25ae4ec..cf2416b 100644 --- a/kvmstats/kvmstats +++ b/kvmstats/kvmstats @@ -1,40 +1,32 @@ #!/bin/sh -set -e - error () { echo "$0": "$@" >&2 exit 1 } usage () { - echo 'usage: kvmstats [-a] [-u k|m|g] [-o human|html|csv]' >&2 + echo 'usage:' "$0" '[-a] [-u k|m|g] [-o human|html|csv]' >&2 exit 1 } for DEP in bc virsh do - command -v $DEP > /dev/null || error $DEP command not found + command -v "$DEP" > /dev/null || error "$DEP" 'command not found' done -POW=$(echo 1024 ^ 3 | bc) -FMT=human -while [ $# -ne 0 ] +POW="$(echo '1024 ^ 3' | bc)" +FMT='human' +while [ "$#" -ne 0 ] do - case $1 in + case "$1" in '-a') - SHOW_AVAIL=y + SHOW_AVAIL='y' ;; '-o') - case $2 in - 'human') - FMT=human - ;; - 'html') - FMT=html - ;; - 'csv') - FMT=csv + case "$2" in + 'csv'|'html'|'human') + FMT="$2" ;; *) usage @@ -43,15 +35,15 @@ do shift ;; '-u') - case $2 in + case "$2" in 'k') - POW=$(echo 1024 ^ 1 | bc) + POW="$(echo '1024 ^ 1' | bc)" ;; 'm') - POW=$(echo 1024 ^ 2 | bc) + POW="$(echo '1024 ^ 2' | bc)" ;; 'g') - POW=$(echo 1024 ^ 3 | bc) + POW="$(echo '1024 ^ 3' | bc)" ;; *) usage @@ -73,13 +65,13 @@ do # mem # libvirt stores memory in KiB, POW must be lowered by 1 - virsh dommemstat "$VM" 2>&- | awk 'BEGIN{ret=1}$1~/^actual$/{print $2 / '$((POW / 1024))';ret=0}END{exit ret}' || + virsh dommemstat "$VM" 2> /dev/null | awk 'BEGIN{ret=1}$1~/^actual$/{print $2 / '$((POW / 1024))';ret=0}END{exit ret}' || virsh dumpxml "$VM" | awk -F'[<>]' '$2~/^memory unit/{print $3/'$((POW / 1024))'}' # disk for BLK in $(virsh domblklist "$VM" | sed '1,2d;/-$/d;/^$/d' | awk '{print $1}') do - virsh domblkinfo "$VM" "$BLK" 2>&- + virsh domblkinfo "$VM" "$BLK" 2> /dev/null done | awk '/Physical:/ { size += $2 } END { print int(size / '${POW}') }' # state @@ -91,7 +83,7 @@ done | xargs -n5 | { nproc awk '/^MemTotal:/ { print int($2 / '$((POW / 1024))' ) }' /proc/meminfo } | xargs -r printf 'AVAILABLE %s %s %s %s\n' -} | case $FMT in +} | case "$FMT" in 'human') column -t ;;