diff --git a/kvmstats/kvmstats b/kvmstats/kvmstats index 16aca25..08ad011 100755 --- a/kvmstats/kvmstats +++ b/kvmstats/kvmstats @@ -65,13 +65,22 @@ done for VM in $(virsh list --name --all) do echo "$VM" + + # cpu virsh vcpucount --maximum --current "$VM" + + # mem # libvirt store memory in KiB, POW must be lowered by 1 - virsh domstats --balloon "$VM" | awk -F= '/balloon.maximum/ { print $2 / '$((POW / 1024))'}' + virsh dommemstat "$VM" 2>&- | 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' | cut -d\ -f1) do - virsh domblkinfo "$VM" "$BLK" + virsh domblkinfo "$VM" "$BLK" 2>&- done | awk '/Physical:/ { size += $2 } END { print int(size / '${POW}') }' + + # state virsh domstate "$VM" | grep -q '^running$' && echo yes || echo no done | xargs -n5 | { echo vm vcpu ram disk running