#! /bin/bash set -e set -u outputdir=/mnt/backups/vms 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 echo rsync -a /srv/VM/Win/roofline ${outputdir}/ ret=$? vboxmanager start $machine exit $ret fi exit 43