VM-ek diszkjeinek listázása

#!/bin/bash
. ovm_functions.sh
kulcs_ellenorzes

printf $yel
echo "VM" "Disk_name" "Repository/WWN" "Disk_Size" "Virt/Phys"| awk '{printf "%-40s %-30s %-40s %10s %3s\n",$1,$2,$3,$4,$5}'
printf $end
ovm_cli "list vmdiskMapping" | egrep -v '(EMPTY_CDROM)' | grep -v '^$' | grep ')' | while read SOR; do
        ID=$(echo $SOR | grep -oP "(?<=id:)[^ ]+(?= )")
        DISK_ID=$(echo $SOR | grep -oP "(?<=\()[^ ]+(?=\))")
        VM=$(ovm_cli "show vmdiskMapping id=$ID" | grep "[[:space:]][[:space:]]Vm" | grep -oP "(?<=\[)[^ ]+(?=\])")
        [[ $DISK_ID =~ \.iso$ ]] && continue;
        if [[ $DISK_ID =~ img$  ]]; then
                DISK_FILENAME=$DISK_ID
                DISK_NAME=$(ovm_exec "show virtualdisk name=$DISK_ID" "[[:space:]][[:space:]]Name")
                DISK_REPO=$(ovm_cli "show virtualdisk name=$DISK_ID" | grep "Repository Id" | grep -oP "(?<=\[)[^ ]+(?=\])")
                DISK_SIZE=$(ovm_exec "show virtualdisk name=$DISK_ID" "Max \(GiB\)")
                printf ${whi}
                echo "$VM" "$DISK_NAME" "[$DISK_REPO]" "${DISK_SIZE}G" "V" | awk '{printf "%-40s %-30s %-40s %10s %3s\n",$1,$2,$3,$4,$5}'
                printf ${end}
        else
                DISK_ID=$(ovm_exec "show vmdiskMapping id=$ID" "Physical Disk")
                DISK_WWN=$(ovm_exec "show physicalDisk id=$DISK_ID" "User-Friendly Name")
                DISK_NAME=$(ovm_exec "show physicalDisk id=$DISK_ID" "[[:space:]][[:space:]]Name")
                DISK_SIZE=$(ovm_exec "show physicalDisk id=$DISK_ID" "Size \(GiB\)")
                echo "$VM" "$DISK_NAME" "[$DISK_WWN]" "${DISK_SIZE}G" "P" | awk '{printf "%-40s %-30s %-40s %10s %3s\n",$1,$2,$3,$4,$5}'
        fi
done | sort -k1

Fizikai diszkek listája guest device névvel és UUID-val:

#!/bin/bash
. ovm_functions.sh
kulcs_ellenorzes
OUT_FILE=ovm_list_vm_phys_disks.lst
TMP_FILE=${0}.tmp

ovm_cli "list vmdiskmapping" | awk -F' ' '/id:/{print $2}' | sed 's/id://' | while read SOR; do
    [[ ! $(ovm_cli "show vmdiskmapping id=$SOR") =~ Physical.Disk || $(grep -c $SOR $OUT_FILE) -gt 0 ]] && continue;
    ovm_cli "show vmdiskmapping id=$SOR" 2>&1 > ${TMP_FILE}.1
    PHYS_DISK=$(cat ${TMP_FILE}.1 | grep 'Physical.Disk' | sed -r 's/(^.*\[)(.*)(\])/\2/')
    PHYS_DISK_ID=$(cat ${TMP_FILE}.1 | egrep 'Physical.Disk' | awk '{print $5}')
    PHYS_DISK_UUID=$(ovm_exec "show PhysicalDisk id=$PHYS_DISK_ID" "User-Friendly Name")
    SLOT_NR=$(cat ${TMP_FILE}.1 | awk -F'=' '/Slot/{print $2}')
    VM_NAME=$(cat ${TMP_FILE}.1 | egrep 'Vm' | sed -r 's/(^.*\[)(.*)(\])/\2/')
    VM_ID=$(cat ${TMP_FILE}.1 | egrep 'Vm' | awk '{print $4}')
    LNX_DEV=$(ovm_cli "getVmCfgFileContent vm id=$VM_ID" |grep "disk ="  |  perl -ne 's/,(?=[a-z]{3}[a-z]*:)/#/g; print;' | sed 's/\(.*\[\)\(.*\)\]/\2/' | tr '#' '\n' | awk -F',' '/'${PHYS_DISK_UUID,,}'/{print $2}')
    echo -e "${SOR}\t${VM_NAME}\t${LNX_DEV}\t${PHYS_DISK}\t${SLOT_NR}"
done | tee -a $OUT_FILE
rm -f $TMP_FILE