#!/bin/bash # CVM action hostname # action: start reset stop show snapshot ACTION=$1 HOSTNAME=$2 case $ACTION in stop|halt) if [ "$HOSTNAME" == "" ]; then echo "VM Name missing" exit fi vboxmanage controlvm $HOSTNAME poweroff ;; reset) if [ "$HOSTNAME" == "" ]; then echo "VM Name missing" exit fi vboxmanage controlvm $HOSTNAME reset ;; start) if [ "$HOSTNAME" == "" ]; then echo "VM Name missing" exit fi vboxmanage startvm $HOSTNAME --type headless ;; snapshot) if [ "$HOSTNAME" == "" ]; then echo "VM Name missing"; exit fi NAME=`date +"%Y-%m-%d_%H-%M_"` NAME=`echo "$NAME$HOSTNAME"` echo $NAME vboxmanage snapshot $HOSTNAME take $NAME vboxmanage snapshot $HOSTNAME list ;; show|list) echo "+ running / - stopped" for I in `vboxmanage list vms | egrep -o '".*"' | egrep -o '[^"]*' | sort` do vboxmanage list runningvms | grep $I > /dev/null if [ "$?" == "0" ]; then echo " + $I" else echo " - $I" fi done ;; *) echo " CVM start hostname reset hostname stop|halt hostname show|list snapshot hostname " ;; esac