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!

VCB/Snapshot und custom Backup Scripts in Windows VMs

Hilfe bei Problemen mit Installation & Benutzung des VMware ESX/ESXi Server 3.

Moderatoren: Dayworker, irix

Profi
Beiträge: 535
Registriert: 04.01.2006, 12:06
Wohnort: Hamm

Beitragvon ostekl1 » 04.02.2010, 16:35

Hallo zusammen,

dank irix guter Vorarbeit versuche ich jetzt seinen Ansatz des Wrapper Sripts umzusetzen.
Allerdings will das nicht so wie ich mir das vorstelle.

Das Script vcb.bat wird auf jeden fall ausgeführt, aber die die unterscripte nicht.
Weil ich dem auf die Spur kommen wollte, habe ich das Wrapper Script mit ein paar Log Ausgaben versehen, es wird aber trotzdem extrem wenig gelogt.

Code: Alles auswählen

@echo off
:: script running with vcb backup
:: please copy to c:\programm files\VMware\VMware Tools\backupScripts.d\vcb.bat

set scriptpath = c:\batch\vcb
set logpath= c:\batch\logs

echo %0 writes to logfile at %date% %time% >>%logpath%\log.txt
echo %0 writes this parameter %1% >>%logpath%\log.txt

if "%1%" == ""       goto noParam
if "%1%" == "freeze"     goto doFreeze
if "%1%" == "thaw"       goto dothaw
if "%1%" == "freezeFail" goto dofreezefail
goto wrongParam


:doFreeze
echo %0 writes %1% to logfile at %time% >>%logpath%\log.txt
call %scriptpath%\pre-freeze-script.bat
goto Ende

:dothaw
echo %0 writes %1% to logfile at %time% >>%logpath%\log.txt
call %scriptpath%\post-thaw-script.bat
goto Ende

:dofreezefail
echo %0 writes %1% to logfile at %time% >>%logpath%\log.txt
call %scriptpath%\post-freezefail.bat
goto Ende

:noParam
echo %0 writes %1% to logfile at %time% >>%logpath%\log.txt
echo "Usage: %0 <freeze|thaw|freezeFail>"
echo At least one Parameter is needed!
goto Ende

:wrongParam
echo %0 writes wrongParam to logfile at %time% >>%logpath%\log.txt
echo "Usage: %0 <freeze|thaw|freezeFail>"
echo "%1" is not a valid parameter!
goto Ende

:Ende


Es wird nur immer der erste echo Aufruf ins Log geschrieben, das aber eben 2 x mit einem Zeitversatz für die beiden Aufrufe.
Habe ich einen Gedankenfehler, oder hat sich etwas geändert wenn ich das VCB geben einen vCenter 4 laufen lasse?

Gruß
Klaus

King of the Hill
Beiträge: 13058
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Beitragvon irix » 04.02.2010, 16:57

Das liegt an dem %1% beim Logging in der Subroutine. Frag mich aber nicht warum... ich habe Batch Programmierung ausgelassen die letzten 15Jahre :)

Benutze nur mal

Code: Alles auswählen

echo %0 writes to logfile at %date% %time% >>%logpath%\log.txt

Und du wird den weiteren Eintrag sehen.

Der Wrapper macht aber nur Sinn wenn deine Scripte spaeter in %WINDIR% liegen. Letzteres ist ja die Original Location wie sie bei einigen Installation ja noch verwendet werden wenn im OS kein VSS Treiber installiert wurde.

Gruss
Joerg

Profi
Beiträge: 535
Registriert: 04.01.2006, 12:06
Wohnort: Hamm

Beitragvon ostekl1 » 05.02.2010, 16:04

:D
sooooo, ich habe noch mal ein bischen gefummelt und jetzt sieht das Wrapper Script so aus und klappt:

Code: Alles auswählen

echo off
:: script running with vcb backup
:: please copy to c:\programm files\VMware\VMware Tools\backupScripts.d\vcb.bat

set scriptpath=c:\batch\vcb
set logpath=c:\batch\logs\log.txt
set parameter=%1%

echo.  >>%logpath%
echo %date% %time% Ausgabe Parameter 1= %parameter%
echo %date% %time% '%0' writes to logfile >>%logpath%
echo %date% %time% '%0' writes this parameter: "%parameter%" ... >>%logpath%

if "%1%" == ""       goto noParam
if "%1%" == "freeze"     goto doFreeze
if "%1%" == "thaw"       goto dothaw
if "%1%" == "freezeFail" goto dofreezefail
goto wrongParam


:doFreeze
echo %date% %time% '%0' writes parameter: "%parameter%" to logfile >>%logpath%
call %scriptpath%\pre-freeze-script.bat
goto Ende

:dothaw
echo %date% %time% '%0' writes parameter: "%parameter%" to logfile >>%logpath%
call %scriptpath%\post-thaw-script.bat
goto Ende

:dofreezefail
echo %date% %time% '%0' writes parameter: "%parameter%" to logfile >>%logpath%
call %scriptpath%\post-freezefail.bat
goto Ende

:noParam
echo %date% %time% '%0' writes no parameter to logfile >>%logpath%
echo "Usage: '%0' <freeze|thaw|freezeFail>"
echo At least one Parameter is needed!
goto Ende

:wrongParam
echo %date% %time% '%0' writes wrong parameter "%parameter% "to logfile >>%logpath%
echo "Usage: %0 <freeze|thaw|freezeFail>"
echo "%1" is not a valid parameter!
goto Ende

:Ende


Die eingentlichen Scripte sehen erst mal so aus:

post-thaw-script.bat

Code: Alles auswählen

set logpath= c:\batch\logs\log.txt

echo %date% %time% '%0' writes to logfile >>%logpath%
echo %date% %time% post-thaw-script.bat will start now  >>%logpath%
echo.  >>%logpath%


post-freezefail.bat

Code: Alles auswählen

set logpath= c:\batch\logs\log.txt

echo %date% %time% '%0' writes to logfile >>%logpath%
echo %date% %time% post-freezefail.bat will start now  >>%logpath%
echo.>>%logpath%


pre-freeze-script.bat

Code: Alles auswählen

set logpath= c:\batch\logs\log.txt

echo %date% %time% '%0' writes to logfile >>%logpath%
echo %date% %time% pre-freeze-script.bat will start now >>%logpath%
echo. >>%logpath%


die Logausgabe in eine Datei sieht dann so aus:

Code: Alles auswählen

05.02.2010 15:34:42,07 '"C:\Program Files\VMware\VMware Tools\backupScripts.d\vcb.bat"' writes to logfile
05.02.2010 15:34:42,07 '"C:\Program Files\VMware\VMware Tools\backupScripts.d\vcb.bat"' writes this parameter: "freeze" ...
05.02.2010 15:34:42,07 '"C:\Program Files\VMware\VMware Tools\backupScripts.d\vcb.bat"' writes parameter: "freeze" to logfile
05.02.2010 15:34:42,07 'c:\batch\vcb\pre-freeze-script.bat' writes to logfile
05.02.2010 15:34:42,08 pre-freeze-script.bat will start now
 
 
05.02.2010 15:34:53,96 '"C:\Program Files\VMware\VMware Tools\backupScripts.d\vcb.bat"' writes to logfile
05.02.2010 15:34:53,96 '"C:\Program Files\VMware\VMware Tools\backupScripts.d\vcb.bat"' writes this parameter: "thaw" ...
05.02.2010 15:34:53,96 '"C:\Program Files\VMware\VMware Tools\backupScripts.d\vcb.bat"' writes parameter: "thaw" to logfile
05.02.2010 15:34:53,96 'c:\batch\vcb\post-thaw-script.bat' writes to logfile
05.02.2010 15:34:53,97 post-thaw-script.bat will start now



Möglicherweise hilft da ja anderen auch noch mal weiter ;)

Gruß
Klaus

King of the Hill
Beiträge: 13058
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Beitragvon irix » 05.02.2010, 16:30

ostekl1 hat geschrieben::D
sooooo, ich habe noch mal ein bischen gefummelt und jetzt sieht das Wrapper Script so aus und klappt:


Du machst den eigentlich Zweck dieses Wrappers zunicht. Das ganz funktioniert auf einem Windows XP oder was immer keinen VMware VSS Treiber hat nicht.

Gruss
Joerg

Profi
Beiträge: 535
Registriert: 04.01.2006, 12:06
Wohnort: Hamm

Beitragvon ostekl1 » 05.02.2010, 16:35

Warum funktioniert das dort nicht?

Solange das vcb.bat File aufgerufen wird sollte das doch gehen - oder?
OK, VSS verstehe ich, aber ohne VSS wurde bei mir die vcb.bat nicht genutzt.

King of the Hill
Beiträge: 13058
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Beitragvon irix » 05.02.2010, 17:17

ostekl1 hat geschrieben:Warum funktioniert das dort nicht?


Na lies mal den Eingangspost um was es eigentlich ging.

Solange das vcb.bat File aufgerufen wird sollte das doch gehen - oder?


Ja.

OK, VSS verstehe ich, aber ohne VSS wurde bei mir die vcb.bat nicht genutzt.

Ja.. das ist da der Krux... weil dann wird in nach %WINDIR%/pre-freeze.bat usw. geguckt.

Gruss
Joerg

Profi
Beiträge: 535
Registriert: 04.01.2006, 12:06
Wohnort: Hamm

Beitragvon ostekl1 » 08.02.2010, 08:28

... das heist wenn ich nur pre-freeze.bat ins Windows Verzeichnis gelegt hätte, wäre alles gut und ich bräuchte das Wrapper Script nicht mehr?

King of the Hill
Beiträge: 13058
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Beitragvon irix » 08.02.2010, 10:20

ostekl1 hat geschrieben:... das heist wenn ich nur pre-freeze.bat ins Windows Verzeichnis gelegt hätte, wäre alles gut und ich bräuchte das Wrapper Script nicht mehr?


Oh Menno,
lies doch einfach den Thread nochmal. Der Wrapper ist die Loesung fuer 2 Probleme

1. Der nicht vorhersehbar Standort wo nach Scripten geschaut wird bzw. deren Namen.
2. Die Notwendigkeit Logik in das/die Scripte zubringen welche unter /BackupScripts.d/ tun zumuessen weil diese ja 2x aufgerufen werden.

Gruss
Joerg

Profi
Beiträge: 535
Registriert: 04.01.2006, 12:06
Wohnort: Hamm

Beitragvon ostekl1 » 08.02.2010, 10:37

:P
... gelesen habe ich das schon. Ich war mir nur nicht ganz sicher ob ich das komplett richtig verstanden habe.

Ich denke aber, dass ich jetzt damit weiter komme. Wir haben auch nicht viele VMs, bei denen überhaupt etwas gestoppt/gestartet werden muss in Verbindung mit VCB.
Es sind ein paar Apps die eine Datenbank dabei haben und seltsamerweise auch einige Domaincontroller die nach der VCB Sicherung manchmal "durch den Wind" sind.

Dafür suchte ich einfach eine Lösung.

Aber danke noch mal für die geduldige Unterstützung !!! :D

Gruß
Klaus

Profi
Beiträge: 535
Registriert: 04.01.2006, 12:06
Wohnort: Hamm

Beitragvon ostekl1 » 12.05.2010, 11:00

Hi,

ich muss das Thema noch mal aus der Versenkung hervorholen:
Aktuell habe ich einen NT4 Server auf dem ich vor der Sicherung ein uralte Oracle in den Backup Mode bringen muss.
Aber irgendwie greifen die Scripte nicht.
Ich habe die pre-freeze-script.bat und post-thaw-script.bat schon ins WINNT Verzeichnis kopiert. Aber bisher ohne dass bei einer Sicherung eines der Scripts gestartet wird.

Hat jemand schon mit NT4 sowas gemacht?

Gruß
Klaus


Zurück zu „ESX 3 & ESXi 3“

Wer ist online?

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