41 lines
1.2 KiB
Bash
Executable File
41 lines
1.2 KiB
Bash
Executable File
#!/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
|