bisher habe ich mit VMware Server 1.x immer zeitgesteuert per Skript (Windows-Host) meine VMs gesichert.
Zur Fehlervermeidung habe ich ein paar Abfragen eingebaut, die ich nun mit VMware Server 2.x leider (noch) nicht hinbekomme.
Zur allgemeinen Belustigung hier mal eine exemplarische Batch-Datei für 1.x:
@echo off
set vmdir=D:\VM
set vmname=WSUS
set vmxname=wsus.vmx
set copyLW=\\192.168.1.1\vmw
if not exist %vmdir%\%vmname%\%vmxname% goto errhost
call vmware-cmd -q "%vmdir%\%vmname%\%vmxname%" getstate | FIND "on" > NUL
if errorlevel=1 goto vmoff
call vmware-cmd -q "%vmdir%\%vmname%\%vmxname%" stop trysoft
if errorlevel=1 goto vmnosuspend
ping -n 30 localhost > nul
:: um Zeit für runterfahren zu gewinnen
robocopy "%vmdir%\%vmname%" "%copyLW%\VM\%vmname%" /MIR /NP /ZB /R:5 /TEE /Log:"%copyLW%\LOG\rclog-%vmname%.txt"
if errorlevel 16 (echo !!! SCHWERER FEHLER !!! > elv.txt
blat elv.txt -to tsch@sagichnich.de -subject %vmname%
goto end)
if errorlevel 8 (echo !! Fehlerhafte Kopien !! > elv.txt
blat elv.txt -to tsch@sagichnich.de -subject %vmname%
goto end)
:: blat schickt eine Mail an mich
call vmware-cmd -q "%vmdir%\%vmname%\%vmxname%" start -U user -P kw
goto end
:vmnosuspend
echo Probleme beim SUSPEND > d:\elv.txt
blat d:\elv.txt -to tsch@sagichnich.de -subject %vmname%
goto end
:vmoff
echo VM war ausgeschaltet > d:\elv.txt
blat d:\elv.txt -to tsch@sagichnich.de -subject %vmname%
goto end
:errhost
echo VMX-Datei nicht gefunden > d:\elv.txt
blat d:\elv.txt -to tsch@sagichnich.de -subject %vmname%
:end
Für 2.x sieht die Batch so aus:
@echo off
set vmdir=[standard]
set vmname=_PROD\WSUS
set vmxname=wsus.vmx
set copyLW=\\192.168.1.1\vmw
if not exist d:\vm\%vmname%\%vmxname% goto errhost
call vmrun -T server -u user -p kw -h https://127.0.0.1:8333/sdk stop "%vmdir% %vmname%\%vmxname%" -soft
ping -n 60 localhost > nul
robocopy "d:\vm\%vmname%" "%copyLW%\VM\%vmname%" /MIR /NP /ZB /R:5 /TEE /Log:"%copyLW%\LOG\rclog-WSUS.txt"
if errorlevel 16 (echo !!! SCHWERER FEHLER !!! > elv.txt
blat elv.txt -to tsch@sagichnich.de -subject %vmname%
goto end)
if errorlevel 8 (echo !! Fehlerhafte Kopien !! > elv.txt
blat elv.txt -to tsch@sagichnich.de -subject %vmname%
goto end)
call vmrun -T server -u user -p kw -h https://127.0.0.1:8333/sdk start "%vmdir% %vmname%\%vmxname%"
goto end
:vmoff
echo VM war ausgeschaltet > d:\elv.txt
blat d:\elv.txt -to tsch@sagichnich.de -subject %vmname%
goto end
:errhost
echo VMX-Datei nicht gefunden > d:\elv.txt
blat d:\elv.txt -to tsch@sagichnich.de -subject %vmname%
:end
Leider konnte ich hier bisher keine Abfrage einbauen, die vor dem Backup sicherstellt, daß die VM überhaupt gestartet war. Falls nämlich dies nicht der Fall ist, soll (wie bei 1.x) unbedingt abgebrochen werden.
Wie kann ich bei vmrun die Errorcodes abfragen für eine nicht gestartete VM?
Danke schonmal für Eure Hilfe.
Mit der API möchte ich eigentlich nicht anfangen zu programmieren. Bin bisher immer mit den Skripten gut zurechtgekommen

lG
TSCH