#!/bin/sh -e menu() { clear echo "====== VBOXCONTROL ======" echo "1. Listar VM's." echo "2. Listar VM's en ejecución." echo "3. Iniciar una VM." echo "4. Parar una VM." echo "5. Iniciar TODAS las VM." echo "6. Parar TODAS las VM." echo "0. Salir." echo "=========================" echo -n "Opcion: " read opcion } iniciar_vms() { echo "Iniciando VM's..." for i in `VBoxManage list vms | grep "{\|}" | cut -d " " -f1 | tr -d "\""`; do echo "Ejecutando VBoxHeadless -startvm \"$i\"..." VBoxHeadless -startvm "$i" & sleep 5 done echo -n "¡TODAS las VM's han sido iniciadas! Pulse Intro para continuar..." read intro } parar_vms() { echo "Parando VM's..." for i in `VBoxManage list runningvms | grep "{\|}" | cut -d " " -f1 | tr -d "\""`; do VBoxManage controlvm "$i" acpipowerbutton & sleep 5 done echo -n "¡TODAS las VM's han sido paradas! Pulse Intro para continuar..." read intro } iniciar_vm() { echo "" echo -n "Escribe el nombre de la que quieras iniciar: " read vm VBoxHeadless -startvm "$vm" &>/dev/null & echo "" echo -n "VM $vm iniciada. Pulse Intro para continuar..." read intro } parar_vm() { echo "" echo -n "Escribe el nombre de la que quieras parar: " read vm VBoxManage controlvm "$vm" acpipowerbutton echo "" echo -n "VM $vm parada. Pulse Intro para continuar..." read intro } listar_vms() { echo "" echo "Lista de máquinas virtuales:" echo "----------------------------" VBoxManage list vms | grep "{\|}" | cut -d " " -f1 | tr -d "\"" } case $1 in start) iniciar_vms ;; stop) parar_vms ;; restart) parar_vms iniciar_vms ;; control) while [ 1 ]; do menu case $opcion in 1) echo "" VBoxManage list vms echo "" echo -n "Pulsa intro para continuar..." read intro ;; 2) echo "" VBoxManage list runningvms echo "" echo -n "Pulsa intro para continuar..." read intro ;; 3) listar_vms iniciar_vm ;; 4) listar_vms parar_vm ;; 5) iniciar_vms ;; 6) parar_vms ;; 0) clear exit ;; *) echo "¿Mande?" echo "" sleep 1 ;; esac done ;; *) echo "" echo "Uso: $0 (start|stop|restart|control)" echo "" ;; esac