Backup von VirtualBox VMs automatisieren

Veröffentlicht von

Auf meinem Home-Server läuft alles an Diensten in einer virtuellen Maschine. Soweit so gut. Natürlich sind regelmäßige und am Besten automatische Backups Pflicht. Hierzu muss die VM idealerweise heruntergefahren werden, das Backup erstellt werden und anschließend sollte die VM wieder gestartet werden.

Dazu habe ich mir eine kleine Batch-Datei geschrieben:

"c:\Program Files\Oracle\VirtualBox\vboxmanage.exe" controlvm UbuntuServer savestate
xcopy "C:\Users\da\VirtualBox VMs\UbuntuServer\*" e:\backup_vm\%date%\* /Y /S
"c:\Program Files\Oracle\VirtualBox\vboxmanage.exe" startvm UbuntuServer

VirtualBox erlaubt das Steuern der virtuellen Maschine über das Kommandozeilen-Tool “vboxmange.exe“. Dieses befindet sich im Programmverzeichnis.

Im ersten Schritt wird die virtuelle Maschine angehalten und der aktuelle Zustand gespeichert:

vboxmanage.exe controlvm UbuntuServer savestate

“UbuntuServer” ist hierbei der Name der VM, wie er auch in der Manager Software angezeigt wird.

Die zweite Zeile kopiert die VM in das Backup-Verzeichnis. Der Parameter /S nimmt hierbei auch die Unterverzeichnisse mit, /Y überschreibt eventuelle Dateien mit gleichen Namen ohne Rückfrage. Mittels %date% wird für jeden Tag ein neuer Ordner angelegt, so dass normalerweise keine Dateien überschrieben werden sollten, sondern jeweils ein eigenes Verzeichnis angelegt werden. Somit hat man gleich auch verschiedene Stände der virtuellen Maschine, zu denen man im Bedarfsfall wechseln kann.

Die Batch-Datei kann man nun noch zeitgesteuert starten und ausführen lassen, so dass z.B. nachts automatisch ein Backup erzeugt wird. Je nach Größe der virtuellen Maschine und des Backupsspeichers, sollte man alte Backups löschen, da diese sonst sehr viel Platz einnehmen.

9 Kommentare

  1. Danke erstmal für diese Anleitung.
    Gibt es irgendeine Lösung wie ich das Ganze im laufenden Betrieb der VM’s hin bekomme?
    Ich hab mehrere Anleitungen gefunden wie Snapshots geklont werden können nur sind diese dann inkonsistent.

  2. Gibt es irgendeine Lösung wie ich das Ganze im laufenden Betrieb der VM’s hin bekomme?

    -> Der Trick ist die VM einen Snapshot machen zu lassen und dann alle Dateien mit ausnahme der Snapshots zu sichern.

    Hier mal ein Beispiel für ein ZIP-Script:
    VBoxManage.exe snapshot %VMNAME% take %SNAPSHOTNAME% –description “%DATE%_%TIME%”
    7z.exe a %BACKUPFILE% %VMNAME% -xr!*Snapshots*
    VBoxManage.exe snapshot %VMNAME% delete %SNAPSHOTNAME%

    Was während der sicherung passiert ist wird dann halt nicht mitgesichert – dafür ist das Backup konsistent.

  3. herzlichen Dank für die Anleitung. ich habe leider das Problem, dass der Restart nicht funktioniert. Ich möchte das Script verwenden um auf einem Win2019 Server die VM mittels Aufgabenplanung nachts zu sichern. Irgendeine Idee?

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.