rottenson667
Goto Top

Backupscript Ortsbezogen - Sicherung von Windows Systemen

Wir setzen gerade eine neue Domäne mit mehreren Standorten auf. Wir haben uns für die Sicherung der Server mit der Windows Server Sicherung, welche in den 2008er Versionen enthalten ist entschieden. Da die GUI dieser Lösung intelligenterweise nicht in der Lage ist UNC-Pfade als Sicherungsziel zu akzeptieren, die Sicherung per Commandlinetool jedoch schon haben wir ein Script geschrieben, das wir per DFS auf alle Standorte verteilen und per geplantem Task auf allen Servern verteilen. So können wir das Script im Hauptstandort stets erweitern und die Änderung kommt mit der nächsten Replik überall an.

Zur Erklärung:

Vorraussetzung für die korrekte Funktion des Scripts ist:

- die Partitionierung der einzelnen Server(Typen) ist immer gleich
- die Namensgebung der Server folgt dem Schema: "Standort[Nummer]-Servertyp[Nummer]", also Beispielsweise WB1-SRV01, B-SRV01, etc. Die Nummern dienen eigentlich nur der Strukturierung. Wir wollten sie gern haben.
- Die Rolle "Windows Server Sicherung" ist auf dem betreffenden Windows 2008 Server installiert bzw. das NTBackup auf dem betreffenden XP-Rechner (wir setzen für eine bestimmte Abteilung XP-Maschinen zur Datenhaltung ein, daher der zweite Sicherungsweg und der zweite Servertyp WSS. Nähere Erläuterung nicht erwünscht). Sollte eventuell auch auf Windows2003 Servern funktionieren, das giolt es zu testen. Wobei ich hier eher Acronis o.Ä. nutzen würde.
- das Sicherungsziel ist ein NAS mit Namen "Standort[Nummer]-NAS", auf dem eine Freigabe namens "Backup" existiert, auf die der Account der das Script ausführt Schreibzugriff hat

weitere Anmerkungen:

- die Erkennung des Wochentages haben wir "eingebaut", da wir 1. eine Woche Vorhaltezeit haben wollten und zweitens weil man bei der Windows Server Sicherung zwar die Vorhaltezeit angeben kann, jedoch wieder nur bei Sicherung auf eine lokal angeschlossene HDD. Bei Sicherung auf einen UNC-Pfad wird die innerhalb des Sicherungsziels befindliche Sicherung überschrieben.


Meine Erfahrungen mit der Windows 2008 Server Sicherung sind bisher ganz gut. Die Daten lassen sich gut Rücksichern (wobei man ohne DHCP beim Booten von CD erst mal an die Daten dran kommen muss, aber das schreib ich noch weiter unten mal wenn ich Muße habe) und liefern einen konsistent laufenden Server zurück. Die Sicherung ist lauf M$ sogar Bare-Metal-fähig. Das heißt dass man sie LAUFFÄHIG auf fremder Hardware wiederherstellen können soll. Hierzu kann man beim Rücksichern Treiber laden, wie ich gesehen habe. Das testen wir aber noch mal. Wie eine rückgesicherte AD aussieht haben wir jedoch nicht getestet. Noch nicht.

Nun aber viel Spaß. Ich freue mich über konstruktive Beiträge!

MfG Maik

Nun das Script:

@ECHO off
REM Backupscript fuer Server und *******server, Standorterkennend mit Sicherungsziel auf Nas!
REM Sicherungswerkzeuge sind das in Windows XP Pro mitgelieferte Tool "NTBackup" (Werkstattserver)  
REM und die Commandline-Version der Windows 2008 Server Sicherung "WBAdmin.exe" (Windows2008 DC`und sonstige Server)  
REM Stand 2010-11-02
REM written by MS + MN

%systemdrive%
cd\

REM Wochentag erkennen
SET DayOfWeekName=NA
for /f "skip=1" %%i in ('wmic path win32_LocalTime get DayOfWeek') do GOTO SetDayOfWeek%%i  
GOTO :SetDayOfWeekSet
:SetDayOfWeek0
	SET DayOfWeekName=Sunday
	GOTO SetDayOfWeekSet
:SetDayOfWeek1
	SET DayOfWeekName=Monday
	GOTO SetDayOfWeekSet
:SetDayOfWeek2
	SET DayOfWeekName=Tuesday
	GOTO SetDayOfWeekSet
:SetDayOfWeek3
	SET DayOfWeekName=Wednesday
	GOTO SetDayOfWeekSet
:SetDayOfWeek4
	SET DayOfWeekName=Thursday
	GOTO SetDayOfWeekSet
:SetDayOfWeek5
	SET DayOfWeekName=Friday
	GOTO SetDayOfWeekSet
:SetDayOfWeek6
	SET DayOfWeekName=Saturday
	GOTO SetDayOfWeekSet
:SetDayOfWeekSet
IF %DayOfWeekName%==NA CALL :LogExit "Kein Tag erkannt"  

REM Standort erkennen anhand des Computernamens
SET standort=NA
for /f "tokens=1 delims=- " %%s in ("%COMPUTERNAME%") do set standort=%%s  
IF %standort%==NA CALL :LogExit "Kein Standort erkannt"  

REM Servertyp erkennen anhand des Computernamens
SET servertyp=NA
for /f "tokens=2 delims=-012" %%a in ("%COMPUTERNAME%") do set servertyp=%%a  
IF %servertyp%==NA CALL :LogExit "Kein Servertyp erkannt"  

:UNC
REM backup share UNC
SET backupfolder=%DayOfWeekName%
SET backupshare=NA
SET backupshare=\\%standort%-NAS\backup\%COMPUTERNAME%
IF %backupshare%==NA CALL :LogExit "Kein Sicherungsziel ermittelt."  
IF NOT EXIST %backupshare%\%DayOfWeekName% GOTO makeDIR

REM LOG der Variablen
ECHO Serverstandort: %standort% > %backupshare%\%DayOfWeekName%.log
ECHO servertyp: %servertyp% >> %backupshare%\%DayOfWeekName%.log
ECHO Servername: %COMPUTERNAME% >> %backupshare%\%DayOfWeekName%.log
ECHO Sicherungsziel: %backupshare%\%DayOfWeekName% >> %backupshare%\%DayOfWeekName%.log
ECHO.  >> %backupshare%\%DayOfWeekName%.log
ECHO Backup vom %date% um %time% Uhr >> %backupshare%\%DayOfWeekName%.log
ECHO.  >> %backupshare%\%DayOfWeekName%.log
ECHO.  >> %backupshare%\%DayOfWeekName%.log

IF %servertyp%==WSS CALL :BackupWSS
GOTO BackupSRV



:makeDIR
ECHO Zielverzeichnis %backupshare%\%DayOfWeekName% existiert nicht und musste erstellt werden >> %backupshare%\%DayOfWeekName%.log
MD %backupshare%\%DayOfWeekName%
IF errorlevel 1 CALL :LogExit "Verzeichnis %backupshare%\%DayOfWeekName% kann nicht erstellt werden. Kein Sicherungsziel verfuegbar."  
ECHO Zielverzeichnis %backupshare%\%DayOfWeekName% wurde erfolgreich erstellt! >> %backupshare%\%DayOfWeekName%.log
GOTO UNC


:BackupSRV
REM files and folders to include
SET include=D:,Z:

REM run the backup
ECHO --------------------------------------------------------------------------------------------------------------- >> %backupshare%\%DayOfWeekName%.log
ECHO Backing up the critical Volumes and Volume %include% to %backupshare% >> %backupshare%\%DayOfWeekName%.log
wbadmin start backup -allcritical -include:%include% -backuptarget:%backupshare%\%DayOfWeekName% -quiet >> %backupshare%\%DayOfWeekName%.log
ECHO --------------------------------------------------------------------------------------------------------------- >> %backupshare%\%DayOfWeekName%.log
GOTO Clear

:BackupWSS
REM files and folders to include
SET include=Systemstate,c:\,d:\

REM run the backup
ECHO --------------------------------------------------------------------------------------------------------------- >> %backupshare%\%DayOfWeekName%.log
ECHO Sichere %include% nach "%backupshare%\%DayOfWeekName%\%COMPUTERNAME%.bkf" >> %backupshare%\%DayOfWeekName%.log  
ntbackup backup %include% /J "%COMPUTERNAME%.JOB" /F "%backupshare%\%DayOfWeekName%\%COMPUTERNAME%.bkf" /SNAP:on  >> %backupshare%\%DayOfWeekName%.log  
ECHO --------------------------------------------------------------------------------------------------------------- >> %backupshare%\%DayOfWeekName%.log
IF errorlevel 1 CALL :LogExit "NTBackup hat einen Fehler gemeldet! Bitte die EreignisLOGS prüfen!"  

:Clear
ECHO.  >> %backupshare%\%DayOfWeekName%.log
ECHO.  >> %backupshare%\%DayOfWeekName%.log
ECHO.  >> %backupshare%\%DayOfWeekName%.log

REM Clear variables
SET backupshare=
SET include=

GOTO :EOF

:sleep
:: sleep for x number of seconds
ping 127.0.0.1 -n 2 -w 1000 > NUL
ping 127.0.0.1 -n %1 -w 1000 > NUL
GOTO :EOF

:LogExit
ECHO %1 >> %backupshare%\%DayOfWeekName%.log
CALL :sleep 5
exit
GOTO :EOF

:EOF

Content-Key: 154210

Url: https://administrator.de/contentid/154210

Printed on: April 18, 2024 at 11:04 o'clock

Member: x-scips
x-scips Mar 12, 2011 at 10:24:13 (UTC)
Goto Top
Hallo Admin Kollegen...

das Windows Backup 2008 stellt mich vor Probleme.

Es ist möglich, über die GUI mehrere Festplatten als Sicherungsziel zu definieren, die nicht immer angebunden sein müssen.

Über die Abarbeitung per Skript habe ich für den Befehl "Wbadmin start backup -backupTarget:"
bisher keine Möglichkeit gefunden, per Skript mehrere Datenträger per einzubinden.

Ist jemanden bekannt, ob eine Abarbeitung über den Befehl "Wbadmin start backup -backupTarget:<Volumename1>,<Volumename2>"
funktioniert? Kennt jemand eine entsprechende Möglichkeit per Skript mehrere Laufwerke (die nicht permanent angebunden sind) als Ziel zur Verfügung zu stellen?

Grüße

x-scips
Member: Icedg
Icedg May 04, 2011 at 10:04:30 (UTC)
Goto Top
Moin. Hier ein Beispiel:

wbadmin START backup -backuptarget:\\wdtsbk01\ServerBackups\WDTSWEB01 -include:C:,D: -vssFull -quiet

Sichert alle Daten von C und D auf das Ziel \\wdtsbk01\ServerBackups\WDTSWEB01

Das ganze habe ich bei uns für alle Server Betriebsysteme eingerichtet. Ich sichere nur noch die File Server, Datenbank Server und Mail Server mit einem Backup Client.
Das Backupsystem greift diese Backupsets einfach nur \\wdtsbk01\ServerBackups ab und sichert auf Band