44 lines
1.1 KiB
Bash
Executable File
44 lines
1.1 KiB
Bash
Executable File
#! /bin/bash
|
|
|
|
set -e
|
|
set -u
|
|
|
|
statusfile=/var/run/zabbix/vmbackup.status
|
|
outputdir=/mnt/backups/vms
|
|
|
|
_exit () {
|
|
echo $1 > $outputdir
|
|
exit $1
|
|
}
|
|
|
|
if [ ! -d $outputdir ] ; then
|
|
echo outputdir not mounted
|
|
_exit 41
|
|
fi
|
|
|
|
outputdir=${outputdir}/$(date -I)
|
|
mkdir -p ${outputdir}
|
|
|
|
if [ $# -ne 1 ] ; then
|
|
echo "Usage: $O vm"
|
|
echo "Stop, backup and start given vm"
|
|
_exit 42
|
|
fi
|
|
|
|
function checkRunning {
|
|
local machine=$1
|
|
vboxmanage list runningvms | grep -q $machine
|
|
return $?
|
|
}
|
|
|
|
machine=$1
|
|
if ( checkRunning $machine ) ; then
|
|
vboxmanage controlvm $machine acpipowerbutton shutdown
|
|
sleep 60
|
|
rsync --inplace -a /srv/VM/Win/roofline ${outputdir}/
|
|
ret=$?
|
|
vboxmanage startvm $machine
|
|
_exit $ret
|
|
fi
|
|
_exit 43
|