#!/bin/bash echo Starting $0 $* VmName=${1} # --------------------------------------------------- # Cronjob requires explicit connection to local server # --------------------------------------------------- VirshCmd="/usr/bin/virsh -c qemu:///system" if [ "${VmName}" == "" ] then echo "Usage: $0 " exit 1 fi Today=$(date +%Y%m%d) BackupDir=/localdisk/backup/qcow2 GuestQcow2Files=$(${VirshCmd} domblklist ${VmName} | grep qcow2 | awk '{print $2}') Cmd="mkdir -p ${BackupDir}" echo ${Cmd} && eval ${Cmd} Cmd="${VirshCmd} suspend ${VmName}" echo ${Cmd} && eval ${Cmd} for qcow2_file in ${GuestQcow2Files} do Cmd="cp ${qcow2_file} ${BackupDir}/${Today}.$(basename ${qcow2_file})" echo ${Cmd} && eval ${Cmd} done Cmd="${VirshCmd} resume ${VmName}" echo ${Cmd} && eval ${Cmd} echo "$0 Done."