- notageek.it di Mirko Iodice - http://www.notageek.it -
VMware Server “Quick and Dirty” batch backup script
Posted By Mirko On 20 febbraio 2008 @ 21:28 In Progetti | 5 Comments
Di seguito potete trovare uno script batch che utilizzo per fare il backup di alcune macchine virtuali VMware Server su Host Windows. Si tratta di una procedura molto semplice ma comunque funzionale: si occupa sostanzialmente di eseguire lo spegnimento di una macchina virtuale, copiarla e riavviarla; tutti i passaggi vengono memorizzati all'interno di un file di log.
Ammesso che la macchina virtuale possa sopportare un temporaneo downtime, il metodo più sicuro per eseguirne con successo il backup è quello di spegnerla completamente per poi copiarne il disco virtuale (vmdk). Infatti, nel momento in cui le VM sono in esecuzione, VMware memorizza moltissime informazioni all'interno di una memoria virtuale che verrà completamente trasferita sul disco soltanto in fase di spegnimento.
Scaricate il file .zip [1] contenete il batch script di cui sotto e, dopo averne impostato le variabili (la spiegazione si trova alla fine di questo post), utilizzatelo come operazione pianificata
IMPORTANTE: la macchina virtuale della quale effettuerete il backup deve eseguire il software VMware Tools.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | @echo off rem --- Variables --------------------------------- set VMWAREINSTALLPATH=C:\Programmi\VMware\VMware Server set VMPATH=D:\VirtualMachines\Windows XP Professional set VMVMX=Windows XP Professional.vmx set BACKUPDESTINATION=c:\Virtual Machines set LOGFILE=c:\Virtual Machines\log.txt rem --------------------------------------------------- setlocal set PATH=%PATH%;%VMWAREINSTALLPATH% set VAR="%VMWAREINSTALLPATH%\perl.exe" "%VMWAREINSTALLPATH%\vmware-cmd" "%VMPATH%\%VMVMX%" getstate echo Starting Backup Procedure on %date% at %time%... > "%LOGFILE%" :checkvmstatus echo Checking %VMVMX% VM status... >> "%LOGFILE%" FOR /F "tokens=3 delims= " %%R IN ('"%VAR%"') DO SET RESULT=%%R echo %VMVMX% VM status is "%RESULT%"... >> "%LOGFILE%" if "%RESULT%" EQU "on" goto poweroffvm if "%RESULT%" EQU "off" goto copyandrestartvm goto quit :poweroffvm echo Stopping %VMVMX% VM... >> "%LOGFILE%" "%VMWAREINSTALLPATH%\perl.exe" "%VMWAREINSTALLPATH%\vmware-cmd" "%VMPATH%\%VMVMX%" stop >> "%LOGFILE%" rem echo Waiting 60 seconds... >> "%LOGFILE%" rem sleep -m 60000 goto checkvmstatus :copyandrestartvm echo Starting %VMVMX% VM Backup... >> "%LOGFILE%" xcopy "%VMPATH%"\*.* "%BACKUPDESTINATION%"\*.* /E /C /I /F /H /Y >> "%LOGFILE%" echo %VMVMX% VM Backup finished... restarting %VMVMX% VM... >> "%LOGFILE%" "%VMWAREINSTALLPATH%\perl.exe" "%VMWAREINSTALLPATH%\vmware-cmd" "%VMPATH%\%VMVMX%" start >> "%LOGFILE%" FOR /F "tokens=3 delims= " %%R IN ('"%VAR%"') DO SET RESULT=%%R echo %VMVMX% VM status is now "%RESULT%"... >> "%LOGFILE%" goto quit :quit echo Quitting Backup Procedure on %date% at %time% ... >> "%LOGFILE%" exit |
Le variabili da impostare, come potete vedere, sono:
Mirko Iodice
mirko -at- notageek (.dot) it
Article printed from notageek.it di Mirko Iodice: http://www.notageek.it
URL to article: http://www.notageek.it/vmware-server-windows-batch-backup.html
URLs in this post:
[1] Scaricate il file .zip: http://www.notageek.it/wp-includes/files/VMBackup.zip
Click here to print.
Copyright © 2009 notageek.it. All rights reserved.