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!

VM`s zeitgesteuert sichern

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

Moderatoren: Dayworker, irix

Member
Beiträge: 8
Registriert: 28.10.2005, 14:22

VM`s zeitgesteuert sichern

Beitragvon Ronin » 06.07.2006, 15:01

Hallo!

Ich habe zwei GSX Server unter Windows laufen.

Ich möchte mit einem batch die VM (später auch mehrere) herunterfahren, kopieren und wieder starten.

Ich hab mir folgendes herausgesucht:

vmware-cmd E:\Virtual_Machines\Windows\winXPPro.vmx stop trysoft

zum herunterfahren!


robocopy.exe "E:\Virtual_Machines\Windows" "F:\Test" /E /ZB /COPY:DATSOU /R:0 /W:0

zum kopieren!


vmware-cmd E:\Virtual_Machines\Windows\winXPPro.vmx start

zum neu starten!

Die Batchdateien (VM_Stop.bat,VM_Kopie.bat und VM_Start.bat) laufen einzeln auch gut.
Es gelingt mir leider nicht diese drei Zeilen in eine lauffähige Batchdatei zu bringen.

Es soll wohl daran liegen das der zweite Befehl schon ausgeführt wird bevor der erste beendet wurde.

Könnt ihr mir helfen ein lauffähiges script zu erstellen? Dieses soll später als task (Nachts) ausgeführt werden.

Danke!

Beste Grüße

Ronin



:)

Member
Beiträge: 8
Registriert: 28.10.2005, 14:22

Beitragvon Ronin » 11.07.2006, 10:25

Was? Kann mir keiner helfen????

:roll:

Member
Beiträge: 152
Registriert: 17.06.2005, 08:18

Beitragvon ioman » 11.07.2006, 11:40

Ok ich hätte da evtl. was.
VMWare legt eine .lck Datei an währen die VMWare noch läuft, also prüf einfach auf diese ab.
Bsp.:

Code: Alles auswählen

.... mache shutdown ....

:warten
if exist "[pfad]:\[Dateiname].vmx.lck" goto warten

.... jetzt kopieren ....
.... jetzt starten....


:warten ist ne Sprungmarke.
if exist überprfüt ob die lck datei noch existiert.
Wenn ja, dann springt er wieder in warten und überprüft, usw...
Wenn nein macht er im Batch weiter.

Gruß
ioman

Member
Beiträge: 8
Registriert: 28.10.2005, 14:22

Beitragvon Ronin » 12.07.2006, 15:25

Hallo!

Erstmal DANKE! :)


Jetzt geht`s ans basteln...... :roll:

Member
Beiträge: 152
Registriert: 17.06.2005, 08:18

Beitragvon ioman » 13.07.2006, 06:44

Kein Problem. Wenn Du noch Hilfe brauchst meldest Dich einfach dann *bastel* ich Dir so ein Script :grin:

Gruß
ioman

Member
Beiträge: 8
Registriert: 28.10.2005, 14:22

Beitragvon Ronin » 17.07.2006, 14:31

Hallo!

Hier mein kleines Script:

vmware-cmd C:\Daten\VM\Linux.vmx stop trysoft

:warten

if exist C:\Daten\VM\Linux.vmx.lck goto warten


robocopy.exe "C:\Daten\VM" "Y:\VM" /E /ZB /COPY:DATSOU /R:0 /W:0

vmware-cmd C:\Daten\VM\Linux.vmx\Linux.vmx start


Nun zu meinen Problemen:

1. Laüft die VM noch fährt der Befehl sie runter danach abbruch
2. Ist die VM runtergefahren und ich nehme die erste Zeile weg kopiert er sauber und fährt sie wieder hoch.

Ich möchte aber:

VM läuft - dann herunterfahren
VM kopieren
VM wieder hochfahren

oder

VM läuft nicht - egal
VM kopieren
VM wieder hochfahren


Danke!
:grin:

Beste Grüße

Ronin

Member
Beiträge: 152
Registriert: 17.06.2005, 08:18

Beitragvon ioman » 18.07.2006, 07:13

Ohne das jetzt gerade ausprobieren zu können würde ich spontan folgendes schreiben :

Code: Alles auswählen

start vmware-cmd C:\Daten\VM\Linux.vmx stop trysoft


Ohen Gewähr (sitz grad an nem anderen PC).

Gruß
ioman

Member
Beiträge: 8
Registriert: 28.10.2005, 14:22

Beitragvon Ronin » 18.07.2006, 11:07

Danke!

Aber das Problem ist folgendes:

Wenn die VM nicht laüft bricht das Script ab ohne die nächsten Befehle abzuarbeiten.

Die Fehlermeldung sagt:

Ich kann den Befehl zum herunterfahren nicht ausführen VM laüft nicht.


Ideal wäre:

VM runterfahren - Ok oder VM ist runtergefahren egal dann

VM kopieren - Ok

VM- neustarten - OK



Man ich bin echt kein Programmierer :oops:

Beste Grüße

Ronin

Member
Beiträge: 152
Registriert: 17.06.2005, 08:18

Beitragvon ioman » 18.07.2006, 11:11

Code: Alles auswählen

if exist C:\Daten\VM\Linux.vmx.lck goto shutdownvm
goto copyme

:shutdownvm
start vmware-cmd C:\Daten\VM\Linux.vmx stop trysoft

:warten
if exist C:\Daten\VM\Linux.vmx.lck goto warten

:copyme
robocopy.exe "C:\Daten\VM" "Y:\VM" /E /ZB /COPY:DATSOU /R:0 /W:0

vmware-cmd C:\Daten\VM\Linux.vmx\Linux.vmx start


Hilft das evtl.?
Zuerst wird durch die .lck datei geprüft ob die vm rennt (könnte man noch eleganter lösen), wenn ja -> vmshutdown -> wenn nein gleich zum kopieren.

Gruß
ioman

Member
Beiträge: 9
Registriert: 06.07.2006, 09:26

Beitragvon Goldmond » 18.07.2006, 13:11

ich arbeite zur Zeit am selben Problem

jedoch möchte ich nicht nur eine sondern 4 vms runter fahren und dann starten

z.b.
start vmware-cmd C:\Daten\VM\Linux.vmx stop trysoft
start vmware-cmd C:\Daten\VM\Linux.vmx stop trysoft
start vmware-cmd C:\Daten\VM\Linux.vmx stop trysoft


wenn jedoch die erste down ist springt er mir aus dem Batch und bricht ab.
Muss ich jetzt immer einen einzelne Batch anlegen und des alles verzetteln auf mehere Daten damit die richtig durchlaufen?

Muss doch möglich sein dass die Befehle hintereinander ausgeführt werden ohne abbruch

Member
Beiträge: 152
Registriert: 17.06.2005, 08:18

Beitragvon ioman » 18.07.2006, 13:25

Goldmond an dieser Stelle würde ich eine Master-Shutdown-Kopier Batch schreiben (siehe mein Posting) aber den Pfad zur VMX Datei als Parameter übergeben.
Und dann eine 2 Batch die die Master Batch per Parameter aufruft.

Ansonsten könnt mer auch ne kleine kurze exe basteln, das ist eher mein Spezialgebiet und nicht so scripten :-)

Gruß
ioman

Member
Beiträge: 9
Registriert: 06.07.2006, 09:26

Beitragvon Goldmond » 18.07.2006, 13:33

dein script ist mir klar.

Jedoch springt er bei mir gleich nach dem STOP Befehl aus der Batch
und kommt gar nicht mehr dazu weitere Befehle abzuarbeiten.

Irgend wie übergib der STOP Befehl auch ein exit mit was alle weiteren Stapeldateien abbricht. Verdammt seltsam

Member
Beiträge: 152
Registriert: 17.06.2005, 08:18

Beitragvon ioman » 18.07.2006, 13:48

Hm das ist blöd :roll:
Hab grad keinen Server hier zum ausprobieren sondern nur die Workstation.
Naja wie auch schon gesagt mit dem Scripten kenn ich mich net so aus und bin auch nicht so wirklich ein Fan davon.
Also falls interesse besteht könnt man schon ne kleine Exe basteln (die dann per Script aufgerufen werden kann ;-) ).
Bräucht halt ein paar Anforderungen was das Teil können muss.

Gruß
ioman

Member
Beiträge: 383
Registriert: 03.10.2005, 03:29

Beitragvon al!ve » 18.07.2006, 18:02

Ich hab bisher erst ein mal n ordentliches Windows-Batch-Backup-Script geschrieben, deshalb kann ich s dir nicht *genau* sagen, aber versuch mal mit "call", "cmd" und "start".

Member
Beiträge: 9
Registriert: 06.07.2006, 09:26

Beitragvon Goldmond » 19.07.2006, 08:12

@al!ve wie meinst du das?

mit cmd call und start

soll ich das hintereinander schreiben?

Member
Beiträge: 9
Registriert: 06.07.2006, 09:26

Beitragvon Goldmond » 19.07.2006, 09:34

Hi habs jetzt gepackt!! :idea:
klappt alles :!: :!: :!:

dachte ich lass euch mal drüber schauen :roll:
Bis auf den xcopy Teil hab ich alles fertig und funktioniert einwand frei.
zumindest für meine Bedürfnisse.

Code: Alles auswählen

@echo off

set rechner1=test1
set rechner2=test2
set rechner3=test3

set ziel=D:\VMWare\Production
set quelle=D:\VMWare\_Template

cd "C:\Programme\VMware\VMware VmPerl Scripting API"


::--------------------------------------------------------------------------------------------
::Es werden nun alle VM`s überprüft ob sie laufen und wenn nötig heruntergefahren

:check
if exist "%ziel%\%Rechner1%\Windows XP Professional.vmdk.lck" goto shutdownvm1
if exist "%ziel%\%Rechner2%\Windows XP Professional.vmdk.lck" goto shutdownvm2
if exist "%ziel%\%Rechner3%\Windows XP Professional.vmdk.lck" goto shutdownvm3

:shutdownvm1
call vmware-cmd "%ziel%\%Rechner1%\Windows XP Professional.vmx" stop trysoft
call vmware-cmd -s unregister "%ziel%\%rechner1%\Windows XP Professional.vmx"
goto check

:shutdownvm2
call vmware-cmd "%ziel%\%Rechner2%\Windows XP Professional.vmx" stop trysoft
call vmware-cmd -s unregister "%ziel%\%rechner2%\Windows XP Professional.vmx"
goto check

:shutdownvm3
call vmware-cmd "%ziel%\%Rechner3%\Windows XP Professional.vmx" stop trysoft
call vmware-cmd -s unregister "%ziel%\%rechner3%\Windows XP Professional.vmx"

:wait
if exist "%ziel%\%Rechner3%\Windows XP Professional.vmx.lck" goto wait

::--------------------------------------------------------------------------------------------
::Templates werden zurück kopiert, und vorhandene Ordner umbenannt

:xcopy


::--------------------------------------------------------------------------------------------
::Rechner werden nun wieder in das Inventory des VMWare-Servers gelesen und gestartet

:check2
if exist "%ziel%\%Rechner1%\Windows XP Professional.vmx" goto register1

:check3
if exist "%ziel%\%Rechner2%\Windows XP Professional.vmx" goto register2

:check4
if exist "%ziel%\%Rechner3%\Windows XP Professional.vmx" goto register3

:register1
call vmware-cmd -s register "%ziel%\%rechner1%\Windows XP Professional.vmx"
call vmware-cmd "%ziel%\%rechner1%\Windows XP Professional.vmx" start
goto check3

:register2
call vmware-cmd -s register "%ziel%\%rechner2%\Windows XP Professional.vmx"
call vmware-cmd "%ziel%\%rechner2%\Windows XP Professional.vmx" start
goto check4

:register3
call vmware-cmd -s register "%ziel%\%rechner3%\Windows XP Professional.vmx
call vmware-cmd "%ziel%\%rechner3%\Windows XP Professional.vmx" start

::--------------------------------------------------------------------------------------------

echo Alle VM`s laufen wieder!!
pause

Member
Beiträge: 8
Registriert: 28.10.2005, 14:22

Beitragvon Ronin » 20.07.2006, 11:35

Hallo!

Hier noch mal "mein" ;) Script in der fertigen Version:

---------------------------

if exist C:\Daten\VM13-Semkat\semkat\Linux.vmdk.lck goto shutdown

goto copyme

:shutdown
call vmware-cmd C:\Daten\VM13-Semkat\semkat\Linux.vmx stop trysoft

:warten
if exist C:\Daten\VM13-Semkat\semkat\Linux.vmdk.lck goto warten

goto copyme

:copyme
call robocopy.exe "C:\Daten\VM13-Semkat\semkat" "Y:\Aktuell\Server\Semkat" /E /ZB /COPY:DATSOU /R:0 /W:0

call vmware-cmd C:\Daten\VM13-Semkat\semkat\Linux.vmx start

----------------------------------------------------

DANKE FÜR EURE HILFE!!!



:D


Zurück zu „VMserver 1 und GSX“

Wer ist online?

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