Скрипт экспорта виртуальной машины в KVM/QEMU

Для автоматизации задач экспорта (например, в целях резервного копирования) можно использовать следующий скрипт.
#!/bin/bash
VM_NAME=$1
VM_READY=0
result=1
PATHTO="SET PATH HERE"
if [ "$VM_NAME" == "" ]; then
echo "usage: $0 name"
exit
else
vmstate=$(virsh domstate $VM_NAME 2>/dev/null)
if [ "$vmstate" == "running" ]; then
echo "virtual machine $VM_NAME is running: stop it and try attempt"
else
if [ "$vmstate" == "" ]; then
echo "virtual machine $VM_NAME is not defined"
else
VM_READY=1
fi
fi
fi
if [ "$VM_READY" -eq 1 ]; then
exportpath="$VM_NAME.exported"
if [ ! -d "$exportpath" ]; then
mkdir $exportpath
fi
echo "configuration exporting"
virsh dumpxml $VM_NAME > $exportpath/$VM_NAME.xml
echo "disk copying"
vmdisks=$(virsh domblklist $VM_NAME --details | awk '${PATHTO}/{print $4}')
for disk in $vmdisks; do
if [ -f "$disk" ]; then
echo "$disk"
cp $disk $exportpath
result=$?
else
echo "file $disk not found: operation terminated"
result=1
break
fi
done
fi
exit $result