#!/bin/sh # list vnc display ports for all active VM conv() { awk '{print $1"/1024"}'|bc } T_CURRENT=0 T_MAXIMUM=0 T_UNUSED=0 T_AVAILABLE=0 T_USABLE=0 R=`mktemp` echo -e "VM # CUR # MAX # UNUS # AVAIL # USA" > $R while read vm; do [ -z "$vm" ] && continue MEMSTAT=`virsh domstats --balloon --raw "$vm"` CURRENT=`echo "$MEMSTAT"|grep -oP "(?<=balloon.current=).*"|conv` T_CURRENT=`expr "${CURRENT}" + "${T_CURRENT}"` MAXIMUM=`echo "$MEMSTAT"|grep -oP "(?<=balloon.maximum=).*"|conv` T_MAXIMUM=`expr "${MAXIMUM}" + "${T_MAXIMUM}"` UNUSED=`echo "$MEMSTAT"|grep -oP "(?<=balloon.unused=).*"|conv` T_UNUSED=`expr "${UNUSED}" + "${T_UNUSED}"` AVAILABLE=`echo "$MEMSTAT"|grep -oP "(?<=balloon.available=).*"|conv` T_AVAILABLE=`expr "${AVAILABLE}" + "${T_AVAILABLE}"` USABLE=`echo "$MEMSTAT"|grep -oP "(?<=balloon.usable=).*"|conv` T_USABLE=`expr "${USABLE}" + "${T_USABLE}"` echo -e "$vm # ${CURRENT} # ${MAXIMUM} # ${UNUSED} # ${AVAILABLE} # ${USABLE}" >> $R done <<< `virsh list --state-running --name` R_=`mktemp` cat $R|sort -t '#' -k 3 -n > $R_ echo $T_CURRENT echo -e "TOTAL # ${T_CURRENT} # ${T_MAXIMUM} # ${T_UNUSED} # ${T_AVAILABLE} # ${T_USABLE}" >> $R_ cat $R_|column -t