Good to Know Database

Shell Skript: Recover Virtual Machine


Das folgende Shell Skript dient zum Wiederherstellen eines Backups von einer virtuellen Maschine. Als Virtualisierungslösung wird VMware Server 2.0.x vorausgesetzt.

Erstellen Sie durch den folgenden Befehl das Skript im Verzeichnis ~/sh.

[root@centos5 ~]# vi ~/sh/vmware_recover.sh

Fügen Sie jetzt das folgende Skript in die Datei vmware_recover.sh ein.

Hinweis: Dieses Skript ist für CentOS 5.x und CentOS 6.x ausgelegt.

###########################################################################
##                                                                       ##
##                        Recover Virtual Machine                        ##
##                                                                       ##
## Creation:    06.01.2010                                               ##
## Last Update: 20.10.2013                                               ##
##                                                                       ##
## Copyright (c) 2010-2013 by Georg Kainzbauer <http://www.gtkdb.de>     ##
##                                                                       ##
## This program is free software; you can redistribute it and/or modify  ##
## it under the terms of the GNU General Public License as published by  ##
## the Free Software Foundation; either version 2 of the License, or     ##
## (at your option) any later version.                                   ##
##                                                                       ##
###########################################################################
#!/bin/bash

# Name of the virtual machine
VM=$1

# Directory with your virtual machines
VMDIR=/data/vmware

# Directory with your backups
BACKUPDIR=/data/vmware/backup

# Path of virtual machine backup
VMBACKUP=$(ls -1t ${BACKUPDIR}/${VM}_[0-9]*.tar.gz 2>/dev/null | head -n1)

# Password for the VMware server
PASSWORD=$2

###################################################################
# NORMALLY THERE IS NO NEED TO CHANGE ANYTHING BELOW THIS COMMENT #
###################################################################

if [ -z ${VM} ] ; then
  echo "Please specify virtual machine."
  exit 1
fi

if [ -z ${PASSWORD} ] ; then
  echo "Please specify the password for the VMware server."
  exit 1
fi

if [ ! -z ${VMBACKUP} -a -f ${VMBACKUP} ] ; then
  if $(vmrun -T server -h https://localhost:8333/sdk -u root -p ${PASSWORD} list | grep "${VM}/${VM}.vmx$" >/dev/null) ; then
    echo "Stopping virtual machine ..."
    vmrun -T server -h https://localhost:8333/sdk -u root -p ${PASSWORD} stop "[standard] ${VM}/${VM}.vmx"
  fi

  if $(vmrun -T server -h https://localhost:8333/sdk -u root -p ${PASSWORD} listRegisteredVM | grep "${VM}/${VM}.vmx$" >/dev/null) ; then
    echo "Unregistering virtual machine ..."
    vmrun -T server -h https://localhost:8333/sdk -u root -p ${PASSWORD} unregister "[standard] ${VM}/${VM}.vmx"
  fi

  if [ -d ${VMDIR}/${VM} ] ; then
    echo "Removing virtual machine ..."
    rm -rf ${VMDIR}/${VM}
  fi

  echo "Restoring latest backup ..."
  tar xvfz ${VMBACKUP} -C ${VMDIR}

  echo "Registering virtual machine ..."
  vmrun -T server -h https://localhost:8333/sdk -u root -p ${PASSWORD} register "[standard] ${VM}/${VM}.vmx"

  echo "Starting virtual machine ..."
  vmrun -T server -h https://localhost:8333/sdk -u root -p ${PASSWORD} start "[standard] ${VM}/${VM}.vmx"
else
  echo "No backup for the virtual machine found."
fi

exit 0

Ändern Sie anschließend die Zugriffsrechte der Datei.

[root@centos5 ~]# chmod 0700 ~/sh/vmware_recover.sh

Beim Aufruf des Skripts müssen Sie den Namen der virtuellen Maschine und das Passwort für den VMware Server angeben.

[root@centos5 ~]# ~/sh/vmware_recover.sh <VMNAME> <PASSWORD>


Dieser Eintrag wurde am 12.06.2011 erstellt und zuletzt am 05.04.2015 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_33_1307.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer