Die Foren-SW läuft ohne erkennbare Probleme. Sollte doch etwas nicht funktionieren, bitte gerne hier jederzeit melden und wir kümmern uns zeitnah darum. Danke!

Status der VM per Batch - Hilfe - vmware-cmd.bat

Hilfe bei Problemen mit der Installation oder Benutzung des VMware GSX Server und VMware Server 1.

Moderatoren: Dayworker, irix

Benutzeravatar
Member
Beiträge: 24
Registriert: 04.12.2006, 10:32

Status der VM per Batch - Hilfe - vmware-cmd.bat

Beitragvon chri7 » 05.12.2006, 15:40

Hallo Leute,

ich schreibe gerade ein Backup.-Batch für den VMWare free Server auf WIndows, den Status könnt ihr im Thread http://vmware-forum.de/viewtopic.php?p=29367#29367 nachschauen.

Hier das Problem:

Ich will per Batch den Status der VM abfragen, kann aber den Returncode nicht abfangen, bin am verzweifeln:

Code: Alles auswählen

::Abfrage ob VM läuft oder nicht
::------------------------------
:: wenn nicht nur backup, wenn ja suspend-backup-continue
call "%VMCMDPFAD%" "%VMSTOREPFAD%\%1\%VMXFILE%" getstate ¦ FIND "on" > NUL
if errorlevel 2 ECHO ---2---
if errorlevel 1 ECHO ---1---


Hier der komplette Batchcode fyi, bin für jede Hilfe dankbar:

Code: Alles auswählen

:: Lucia VM-Ware Backup Batch
:: ASP: Baumann
:: ------------------

::Echo aus und CLS
::----------------
@echo off
cls


::Variablen Festlegen
::-------------------
SET VMCMDPFAD=C:\Programme\VMware\VMware Server\vmware-cmd.bat
SET VMSTOREPFAD=F:\Virtual Machines
SET VMBACKUPPFAD=F:\Virtual Machines\_backups_
SET BACKUPTOOL=F:\Virtual Machines\_backups_\7za.exe
:: SET VMXFILE=Windows 2000 Professional.vmx
SET VMXFILE=%2

:: Abfrage ob Hilfe
:: ----------------
IF "%1"=="" goto HELP
IF "%1"=="/?" goto HELP
IF "%1"=="?" goto HELP
IF "%1"=="help" goto HELP
IF "%1"=="/help" goto HELP
IF "%1"=="h" goto HELP
IF "%1"=="/h" goto HELP

::Abfrage ob VM läuft oder nicht
::------------------------------
:: wenn nicht nur backup, wenn ja suspend-backup-continue
call "%VMCMDPFAD%" "%VMSTOREPFAD%\%1\%VMXFILE%" getstate ¦ FIND "on" > NUL
if errorlevel 2 ECHO ---2---
if errorlevel 1 ECHO ---1---

goto END



:vmruns
:: Backup bei laufender Maschine
:: -------------------------
::Suspend der VM
echo suspend:
call "%VMCMDPFAD%" "%VMSTOREPFAD%\%1\%VMXFILE%" suspend
echo.
echo rename:
:: rename des alten BAckup in old, dabei überschreiben des vorherigen alten Backups
move  "%VMBACKUPPFAD%\%1.zip" "%VMBACKUPPFAD%\OLD_%1.zip"
echo.
echo backup
:: BAckup der VM Dateien in eine CAB File
"%BACKUPTOOL%" a -tzip -mmt=on -y  "%VMBACKUPPFAD%\%1.zip" "%VMSTOREPFAD%\%1\*"
echo.
echo start der vm
:: Starten der VM nach Backup
call "%VMCMDPFAD%" "%VMSTOREPFAD%\%1\%VMXFILE%" start
echo.
goto END

:vmstands
:: Backup bei stehender Maschine
:: -------------------------
echo rename:
:: rename des alten BAckup in old, dabei überschreiben des vorherigen alten Backups
move  "%VMBACKUPPFAD%\%1.zip" "%VMBACKUPPFAD%\OLD_%1.zip"
echo.
echo backup
:: BAckup der VM Dateien in eine CAB File
"%BACKUPTOOL%" a -tzip -mmt=on -y  "%VMBACKUPPFAD%\%1.zip" "%VMSTOREPFAD%\%1\*"
echo.
goto END

:HELP
ECHO    ###########################################################################
ECHO    #                                                                         #
ECHO    # backupVMs -VM-  -VMXFILE-                                               #
ECHO    #                                                                         #
ECHO    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
ECHO    #                                                                         #
ECHO    # -VM-  Name der VM ohne Leerzeichen und Pfad z.B. LuciaVM01              #
ECHO    #                                                                         #
ECHO    #                                                                         #
ECHO    #                                                                         #
ECHO    # -VMXFILE-  Name der VMX Datei ohne Leerzeichen und Pfad z.B. LuciaVM01  #
ECHO    #                                                                         #
ECHO    #                                                                         #
ECHO    # --   andere Pfade und Variablen siehe Sourcecode    --                  #
ECHO    #                                                                         #
ECHO    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
ECHO    #                                                                         #
ECHO    # typischer Aufruf:                                                       #
ECHO    #                                                                         #
ECHO    # backupVMs LuciaVM01 Windows2000.vmx                                     #
ECHO    #                                                                         #
ECHO    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
ECHO    #                                                                         #
ECHO    #                                            Coded by Baumann dez_2006    #
ECHO    #                                                                         #
ECHO    ###########################################################################
goto END


:END
:: This is the end    -     my only friend    -    the end *sing*
:: Mensch, das ganze Code hacken macht einen echt wuschig B~7
[/b]

Benutzeravatar
Member
Beiträge: 24
Registriert: 04.12.2006, 10:32

Beitragvon chri7 » 05.12.2006, 15:42

also das

Code: Alles auswählen

if errorlevel 2 ECHO ---2---
if errorlevel 1 ECHO ---1---

ist nur nen Lückenfüller, hier kommen später die gotos hin ob die vm erst noch suspended werden muss und danach wieder aufgeweckt oder ob sie bereits schläft und ein packen reicht ....

Benutzeravatar
Member
Beiträge: 24
Registriert: 04.12.2006, 10:32

Beitragvon chri7 » 03.01.2007, 11:46

So .. hat sich erledigt. ...

Errorlevel 0 heisst läuft,
und 1 heisst Maschine steht (pause oder stop).

hab das ergänzt, und nun funzt das *froi*:

Code: Alles auswählen


::Abfrage ob VM läuft oder nicht
::------------------------------
:: wenn nicht nur backup, wenn ja suspend-backup-continue
::
:: errorlevel 1 == VM steht (pause oder stop)
:: errorlevel 0 == VM luft (also muss noch pausiert werden vorm backup)

call "%VMCMDPFAD%" "%VMSTOREPFAD%\%1\%VMXFILE%" getstate | FIND "on" > NUL
if errorlevel=1 goto vmstands
goto vmruns


Zurück zu „VMserver 1 und GSX“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 21 Gäste