PDA

Vollständige Version anzeigen : backup script VM


Tschubi
16.03.2006, 16:13
Hi,

mit diesem Script kann ich Virtuale Maschinen sichern und anschließend wieder starten.

Nun möchte ich aber noch eine Überprüfung ob bereits eine alte Sicherung der VM vorhanden ist, z.B. unter C:\backup\, und wenn ja diese umbenennen und dann erst die neue Sicherung erstellen. Und damit der Server nicht irgendwann mal Speicherprobleme bekommt möchte ich immer nur eine letzte Sicherung und die aktuelle Sicherung behalten. Das heißt jede vorletzte Sicherung, falls vorhanden soll gelöscht werden.

Hat jemand eine Idee wie man das realisieren kann?

Wäre für jede Idee dankbar.
Gruß



' backupvm.vbs
' John Savill
' Usage : backupvm.vbs
' e.g. cscript backupvm.vbs vm_name c:\backup' Make sure that you place the \ at the end of the backup path or you'll get errors.
'
Option Explicit
On Error Resume Next

Dim objFSO, objVirtualServer, objVM, objSaveTask, objVHD

'Connect to file system object.
set objFSO=CreateObject("Scripting.FileSystemObject")

'Connect to Virtual Server.
set objVirtualServer = CreateObject("VirtualServer.Application")

'Get virtual machine from command-line parameter.
set objVM = objVirtualServer.FindVirtualMachine(WScript.Arguments(0))

'Save state of the virtual machine.
set objSaveTask = objVM.Save

'Loop waiting for task completion
while not objSaveTask.isComplete
WScript.Sleep 1000
wend

'Copy virtual hard disks and undo disks.
for each objVHD in objVM.HardDiskConnections
If objFSO.FileExists(objVHD.HardDisk.file) Then
'Wscript.Echo objVHD.HardDisk.file & " " & WScript.Arguments(1)
objFSO.CopyFile objVHD.HardDisk.file, WScript.Arguments(1)
End If
If objFSO.FileExists(objVHD.undoHardDisk.file) Then
'Wscript.Echo objVHD.undoHardDisk.file & " " & WScript.Arguments(1)
objFSO.CopyFile objVHD.undoHardDisk.file, WScript.Arguments(1)
End If
Next

'Copy .vmc and .vsv files.
wscript.echo objFSO.CopyFile & " " & objVM.File & " " & WScript.Arguments(1)
objFSO.CopyFile objVM.File, WScript.Arguments(1)

wscript.echo objFSO.CopyFile & " " & objVM.SavedStateFilePath & " " & WScript.Arguments(1)
objFSO.CopyFile objVM.SavedStateFilePath, WScript.Arguments(1)

'Start the virtual machine.
objVM.Startup
wscript.echo WScript.Arguments(0) & " wird jetzt wieder gestartet!"

'Script ends
wscript.echo "Script Ende"

'To use the script, simply pass the virtual machine (VM) name as the first argument and the folder to which to copy the backup data as the second argument, as the following example shows:

'C:\temp>cscript backupvm.vbs vm_name C:\backup\

Tschubi
21.08.2006, 21:14
Hi,

also das sichern der VMs funktioniert inzwischen per Script.
Aber jetzt suche ich eine Möglichkeit die Backup-Dateien entweder
direkt auf einen Server zu sichern oder anschließend auf einen anderen Server(RAID) zu kopieren.

so sah mein Versuch aus:

BackupServer = "\\DNS-Name or IP-Adresse"
objFSO.CopyFile objVHD.HardDisk.file, BackupServer

Funktioniert aber nicht.

Geht das mit VB-Scripting überhaupt und wenn ja wie?

Danke und Gruß