====== 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