meta data for this page
VM-ek listázása
#!/bin/bash
. ovm_functions.sh
kulcs_ellenorzes
OUT_FILE=ovm_list_vm_phys_disks.lst
TMP_FILE=${0}.tmp
echo 'NAME;OS;IP;VCPU;MEMORY;DISK_SIZE_SUM;NETWORKS'
for VM_ID in $(ovm_exec "list vm" "id"); do
ovm_cli "show vm id=$VM_ID" 2>&1 > ${TMP_FILE}
NAME=$(cat ${TMP_FILE} | awk -F'=' '/Name/{print $2}')
MEMORY=$(cat ${TMP_FILE} | grep -v Max | awk -F'=' '/Memory/{print $2}')
VCPU=$(cat ${TMP_FILE} | grep -v Max | awk -F'=' '/Processors/{print $2}')
OS=$(cat ${TMP_FILE} | awk -F'=' '/Operating System/{print $2}')
IP=$(host $NAME | awk '{print $NF}')
VNIC_NUM=$(cat ${TMP_FILE} | grep -c "Vnic")
NETWORKS=""
for ((I=1; I<=$VNIC_NUM; I++)); do
VNIC_ID=$(cat ${TMP_FILE} | awk '/Vnic '$I'/{print $5}')
NETWORK_ID=$(ovm_exec "show vnic id=$VNIC_ID" "Network" | awk '{print $1}')
VLAN_DESC=$(ovm_cli "show network id=$NETWORK_ID" | awk -F'=' '/Description/{print $2}')
NETWORKS=$NETWORKS","$VLAN_DESC
done
VMDISKMAPPING_NUM=$(cat ${TMP_FILE} | grep -c "VmDiskMapping")
DISK_SIZE_SUM=0
for ((I=1; I<$VMDISKMAPPING_NUM; I++)); do
VMDISKMAPPING_ID=$(cat ${TMP_FILE} | awk '/VmDiskMapping '$I'/{print $5}')
DISK_ID=$(ovm_cli "show vmdiskmapping id=$VMDISKMAPPING_ID" | awk -F'=' '/Disk =/{print $2}' | awk '{print $1}')
[[ -z "$DISK_ID" ]] && continue;
if [[ $DISK_ID =~ img$ ]]; then
DISK_SIZE=$(ovm_exec "show virtualdisk name=$DISK_ID" "Max \(GiB\)")
DISK_SIZE_SUM=$(echo "scale=2;$DISK_SIZE_SUM + $DISK_SIZE"|bc)
else
DISK_SIZE=$(ovm_exec "show physicalDisk id=$DISK_ID" "Size \(GiB\)")
DISK_SIZE_SUM=$(echo "scale=2;$DISK_SIZE_SUM + $DISK_SIZE"|bc)
fi
done
echo "${NAME# };$OS;$IP;$VCPU;$MEMORY;${DISK_SIZE_SUM%.*} GB;${NETWORKS#, }"
set +x
done
rm $TMP_FILE