40 lines
833 B
Bash
Executable File
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."
|
|
|
|
|