qcow2_utils/backup_vm.sh
2025-06-26 12:28:07 -04:00

40 lines
833 B
Bash
Executable File

#!/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 <VM Domain Name>"
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."