#! /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