Run lvs only one time
Also make the case esac readable
This commit is contained in:
parent
1dc0c0299e
commit
80ba982841
16
kvmstats.sh
16
kvmstats.sh
|
@ -40,6 +40,9 @@ do
|
||||||
done
|
done
|
||||||
|
|
||||||
TMPFILE=$(tempfile)
|
TMPFILE=$(tempfile)
|
||||||
|
LVSOUT=$(tempfile)
|
||||||
|
|
||||||
|
lvs --units b --nosuffix >$LVSOUT
|
||||||
|
|
||||||
for VM in $(virsh list --all --name)
|
for VM in $(virsh list --all --name)
|
||||||
do
|
do
|
||||||
|
@ -48,9 +51,14 @@ do
|
||||||
for DEV in $(hxselect -s'\n' 'domain devices disk[device=disk] source' </etc/libvirt/qemu/$VM.xml | cut -d\" -f2)
|
for DEV in $(hxselect -s'\n' 'domain devices disk[device=disk] source' </etc/libvirt/qemu/$VM.xml | cut -d\" -f2)
|
||||||
do
|
do
|
||||||
case $DEV in
|
case $DEV in
|
||||||
/dev/drbd/*) DISK=$(lvs --units b --nosuffix | awk "/$VM/ { ans += \$NF } END { print ans / 1024^3 }") ;;
|
/dev/drbd/*)
|
||||||
*.qcow2) DISK=$(du -sBG $DEV | awk '{ print substr($1, 0, length($1) - 1) }') ;;
|
DISK=$(cat $LVSOUT | awk "/$VM/ { ans += \$NF } END { print ans / 1024 ^ 3 }")
|
||||||
*) DISK=0;;
|
;;
|
||||||
|
*.qcow2)
|
||||||
|
DISK=$(du -sBG $DEV | awk '{ print substr($1, 0, length($1) - 1) }')
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
DISK=0
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
echo $VM $VCPU $RAM $DISK
|
echo $VM $VCPU $RAM $DISK
|
||||||
|
@ -62,4 +70,4 @@ done >$TMPFILE
|
||||||
awk '{ vcpu += $2; ram += $3; disk += $4 } END { print "TOTAL", vcpu, ram, disk }' <$TMPFILE
|
awk '{ vcpu += $2; ram += $3; disk += $4 } END { print "TOTAL", vcpu, ram, disk }' <$TMPFILE
|
||||||
) | column -t
|
) | column -t
|
||||||
|
|
||||||
rm $TMPFILE
|
rm $TMPFILE $LVSOUT
|
||||||
|
|
Loading…
Reference in a new issue