Meine Batch für das Backup von VMs (VMware Server 2.x)
Verfasst: 16.04.2010, 14:28
Hallo,
möchte an dieser Stelle meine Batchdatei veröffentlichen und um Eure Verbesserungsvorschläge und Kommentare bitten.
************************************************************************
@echo off
:: universelle Batch für VM-Robocopy-Backups unter VMware Server 2.x
:: Herunterfahren mit Option soft (VMTools müssen in der VM installiert sein)
:: Stand 2010-03-16
:: Definition der Variablen
:: Übergabe von nvmdir, nvm, nvmx und sichnr
:: Beispiel: vmbackup _PROD TEST test.vmx -1
:: Wenn nur einfache Sicherung, kann sichnr leer bleiben
:: !!! Groß-/Kleinschreibung beachten bei Datastore und VMX-Datei !!! => generell in Großbuchstaben
set USER=admin
set PASS=XXX
set VMLW=D:
set NVMDIR=%1
set NVM=%2
set NVMX=%3
set SICHNR=%4
set DATASTORE=[VM] %NVMDIR%
set copyLW=\\BACKUP\vm-backup
:: Sicherheitschecks
:: Ist der Backup-Server überhaupt erreichbar ?
ping BACKUP
if errorlevel=1 goto backupoff
:: VMX-Datei vorhanden ?
if not exist %VMLW%\VM\%NVMDIR%\%NVM%\%NVMX% goto errhost
:: VM gestartet ?
if not exist %VMLW%\VM\%NVMDIR%\%NVM%\*.vmem goto vmoff
:: und ACTION
:: ACHTUNG: sind in der VM keine VMTools installiert geht die Option "soft" nicht
vmrun -T server -h https://127.0.0.1:8333/sdk -u %USER% -p %PASS% stop "%DATASTORE%/%NVM%/%NVMX%" soft
::vmrun -T server -h https://127.0.0.1:8333/sdk -u %USER% -p %PASS% stop "%DATASTORE%/%NVM%/%NVMX%"
ping -n 60 localhost > nul
robocopy "%VMLW%\VM\%NVMDIR%\%NVM%" "%COPYLW%\VM2\%NVMDIR%\%NVM%%SICHNR%" /MIR /NP /ZB /R:5 /TEE /Log:"%COPYLW%\LOG\VM2_%NVM%%SICHNR%.txt"
if errorlevel 16 (echo !!! SCHWERER FEHLER !!! > elv.txt
blat elv.txt -to tsch@sagichnich.com -subject %NVM%
goto end)
if errorlevel 8 (echo !! Fehlerhafte Kopien !! > elv.txt
blat elv.txt -to tsch@sagichnich.com -subject %NVM%
goto end)
:: Für Testzwecke, Mail ob Sicherung OK
echo Sicherung OK > d:\elv.txt
blat d:\elv.txt -to tsch@sagichnich.com -subject "Sicherung %NVM% (VM 2.x) OK"
call vmrun -T server -u %USER% -p %PASS% -h https://127.0.0.1:8333/sdk start "%DATASTORE%/%NVM%/%NVMX%"
goto end
:vmoff
echo VM war ausgeschaltet > d:\elv.txt
blat d:\elv.txt -to tsch@sagichnich.com -subject "%NVM% war ausgeschaltet"
goto end
:backupoff
echo Backup-Medium nicht erreichbar > d:\elv.txt
blat d:\elv.txt -to tsch@sagichnich.com -subject "%NVM% Backup-LW nicht gefunden"
goto end
:errhost
echo VMX-Datei nicht gefunden > d:\elv.txt
blat d:\elv.txt -to tsch@sagichnich.com -subject "%NVM% VMX-Datei?"
:end
************************************************************************
Zum Einsatz kommen in der o.g. Batch-Datei die beiden Freeware-Tools ROBOCOPY und BLAT (verschicken von Mails).
möchte an dieser Stelle meine Batchdatei veröffentlichen und um Eure Verbesserungsvorschläge und Kommentare bitten.
************************************************************************
@echo off
:: universelle Batch für VM-Robocopy-Backups unter VMware Server 2.x
:: Herunterfahren mit Option soft (VMTools müssen in der VM installiert sein)
:: Stand 2010-03-16
:: Definition der Variablen
:: Übergabe von nvmdir, nvm, nvmx und sichnr
:: Beispiel: vmbackup _PROD TEST test.vmx -1
:: Wenn nur einfache Sicherung, kann sichnr leer bleiben
:: !!! Groß-/Kleinschreibung beachten bei Datastore und VMX-Datei !!! => generell in Großbuchstaben
set USER=admin
set PASS=XXX
set VMLW=D:
set NVMDIR=%1
set NVM=%2
set NVMX=%3
set SICHNR=%4
set DATASTORE=[VM] %NVMDIR%
set copyLW=\\BACKUP\vm-backup
:: Sicherheitschecks
:: Ist der Backup-Server überhaupt erreichbar ?
ping BACKUP
if errorlevel=1 goto backupoff
:: VMX-Datei vorhanden ?
if not exist %VMLW%\VM\%NVMDIR%\%NVM%\%NVMX% goto errhost
:: VM gestartet ?
if not exist %VMLW%\VM\%NVMDIR%\%NVM%\*.vmem goto vmoff
:: und ACTION
:: ACHTUNG: sind in der VM keine VMTools installiert geht die Option "soft" nicht
vmrun -T server -h https://127.0.0.1:8333/sdk -u %USER% -p %PASS% stop "%DATASTORE%/%NVM%/%NVMX%" soft
::vmrun -T server -h https://127.0.0.1:8333/sdk -u %USER% -p %PASS% stop "%DATASTORE%/%NVM%/%NVMX%"
ping -n 60 localhost > nul
robocopy "%VMLW%\VM\%NVMDIR%\%NVM%" "%COPYLW%\VM2\%NVMDIR%\%NVM%%SICHNR%" /MIR /NP /ZB /R:5 /TEE /Log:"%COPYLW%\LOG\VM2_%NVM%%SICHNR%.txt"
if errorlevel 16 (echo !!! SCHWERER FEHLER !!! > elv.txt
blat elv.txt -to tsch@sagichnich.com -subject %NVM%
goto end)
if errorlevel 8 (echo !! Fehlerhafte Kopien !! > elv.txt
blat elv.txt -to tsch@sagichnich.com -subject %NVM%
goto end)
:: Für Testzwecke, Mail ob Sicherung OK
echo Sicherung OK > d:\elv.txt
blat d:\elv.txt -to tsch@sagichnich.com -subject "Sicherung %NVM% (VM 2.x) OK"
call vmrun -T server -u %USER% -p %PASS% -h https://127.0.0.1:8333/sdk start "%DATASTORE%/%NVM%/%NVMX%"
goto end
:vmoff
echo VM war ausgeschaltet > d:\elv.txt
blat d:\elv.txt -to tsch@sagichnich.com -subject "%NVM% war ausgeschaltet"
goto end
:backupoff
echo Backup-Medium nicht erreichbar > d:\elv.txt
blat d:\elv.txt -to tsch@sagichnich.com -subject "%NVM% Backup-LW nicht gefunden"
goto end
:errhost
echo VMX-Datei nicht gefunden > d:\elv.txt
blat d:\elv.txt -to tsch@sagichnich.com -subject "%NVM% VMX-Datei?"
:end
************************************************************************
Zum Einsatz kommen in der o.g. Batch-Datei die beiden Freeware-Tools ROBOCOPY und BLAT (verschicken von Mails).