#!/usr/bin/bash
VM_NAME=${1}
DEST=${2}
if [[ -z "$(virsh list --all | grep ${VM_NAME})" ]]; then
    echo "No such vm"
    exit 1
fi

if [[ ! -d "${DEST}" ]]; then
    echo "No such directory"
    exit 1
fi
ARCHIVE_NAME="vm-${VM_NAME}-$(date +%Y-%m-%d_%H-%M-%S)"
DISK_LIST="$(virsh domblklist ${VM_NAME} --details| grep disk | awk '{print $4};' | tr "\n" " ")"
find /etc/libvirt/qemu -name ${VM_NAME}.* -type f -print0 | xargs -0 tar -czf ${DEST}/${ARCHIVE_NAME}.tar.gz 2> /dev/null
gzip -d ${DEST}/${ARCHIVE_NAME}.tar.gz
tar -rf ${DEST}/${ARCHIVE_NAME}.tar ${DISK_LIST} 2> /dev/null
gzip ${DEST}/${ARCHIVE_NAME}.tar 2> /dev/null