sabato 30 luglio 2011

Gestire le macchine virtuali vmware con uno script shell linux

Ecco un bello script Shell per gestire le macchine virtuali, l'ho preparato al lavoro per semplificarci la vita.
Funziona benino :-)
#!/bin/sh
while :
 do
    clear
dialog --backtitle "Gestione Macchine Virtuali" \
--menu "Seleziona dall'elenco l'azione che vuoi eseguire" \
15 60 5 \
1 "Visualizzare lista VM accese" \
2 "Visualizzare lista VM disponibili" \
3 "Accendere una VM" \
4 "Spegnere una VM" \
5 "Esci" \
2>/tmp/menuitem.$$
OPZIONE=`cat /tmp/menuitem.$$`

    case $OPZIONE in
        1) RESULT=`vmrun -T server -h https://localhost:8333/sdk -u administrator -p password list`
           dialog --title "Lista Macchine accese" --backtitle "Creato da Stefano Bianchini" --msgbox "$RESULT" 12 50
        ;;
        2) RESULT=`vmrun -T server -h https://localhost:8333/sdk -u administrator -p password listRegisteredVM`
        dialog --title "Lista Macchine disponibili" --backtitle "Creato da Stefano Bianchini" --msgbox "$RESULT" 12 50
        ;;
        3)
            vmrun -T server -h https://localhost:8333/sdk -u administrator -p password listRegisteredVM | grep ".vmx" > /tmp/regVM.$$
        righe=$(wc -l /tmp/regVM.$$ | awk '{print $1}')
            riga=0
            TOTALE=""
        while [ $riga -lt $righe ]; do
        #let riga+=1
              riga=`expr $riga + 1`
              #riga=$riga+1
              current=$(head -$riga /tmp/regVM.$$ | tail -1)
              TOTALE="$TOTALE \"$current\" =="
        done


        TOTALE="dialog --backtitle \"Creato da Stefano Bianchini\" --menu \"Seleziona la macchina virtuale\" 0 0 0 $TOTALE 2>/tmp/menuitem.$$"
        echo $TOTALE > /tmp/menu.$$

        chmod +x /tmp/menu.$$
        /tmp/menu.$$

        CHOICE=`cat /tmp/menuitem.$$`
        if [ "$CHOICE" != "" ] ; then
        vmrun -T server -h https://localhost:8333/sdk -u administrator -p password start "$CHOICE"
        fi
        ;;
        4) 
            vmrun -T server -h https://localhost:8333/sdk -u administrator -p password list | grep ".vmx" > /tmp/regVM.$$
        righe=$(wc -l /tmp/regVM.$$ | awk '{print $1}')
            riga=0
            TOTALE=""
        while [ $riga -lt $righe ]; do
              riga=`expr $riga + 1`
              current=$(head -$riga /tmp/regVM.$$ | tail -1)
              TOTALE="$TOTALE \"$current\" =="
        done


        TOTALE="dialog --backtitle \"Creato da Stefano Bianchini\" --menu \"Seleziona la macchina virtuale\" 0 0 0 $TOTALE 2>/tmp/menuitem.$$"
        echo $TOTALE > /tmp/menu.$$

        chmod +x /tmp/menu.$$
        /tmp/menu.$$

        CHOICE=`cat /tmp/menuitem.$$`
        if [ "$CHOICE" != "" ] ; then
        vmrun -T server -h https://localhost:8333/sdk -u administrator -p password stop "$CHOICE" soft
        fi
        ;;
        5) exit 0
        ;;
        *) exit 1
        ;;
    esac
done

Nessun commento: