Backupscript Ortsbezogen - Sicherung von Windows Systemen
02.11.2010
18:29:46 Uhr6033 Aufrufe
2 Antworten
18:29:46 Uhr
2 Antworten
Hilfreich +1
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:
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:
01.
@ECHO off 02.
REM Backupscript fuer Server und *******server, Standorterkennend mit Sicherungsziel auf Nas! 03.
REM Sicherungswerkzeuge sind das in Windows XP Pro mitgelieferte Tool "NTBackup" (Werkstattserver) 04.
REM und die Commandline-Version der Windows 2008 Server Sicherung "WBAdmin.exe" (Windows2008 DC`und sonstige Server) 05.
REM Stand 2010-11-02 06.
REM written by MS + MN 07.
08.
%systemdrive% 09.
cd\ 10.
11.
REM Wochentag erkennen 12.
SET DayOfWeekName=NA 13.
for /f "skip=1" %%i in ('wmic path win32_LocalTime get DayOfWeek') do GOTO SetDayOfWeek%%i 14.
GOTO :SetDayOfWeekSet 15.
:SetDayOfWeek0 16.
SET DayOfWeekName=Sunday 17.
GOTO SetDayOfWeekSet 18.
:SetDayOfWeek1 19.
SET DayOfWeekName=Monday 20.
GOTO SetDayOfWeekSet 21.
:SetDayOfWeek2 22.
SET DayOfWeekName=Tuesday 23.
GOTO SetDayOfWeekSet 24.
:SetDayOfWeek3 25.
SET DayOfWeekName=Wednesday 26.
GOTO SetDayOfWeekSet 27.
:SetDayOfWeek4 28.
SET DayOfWeekName=Thursday 29.
GOTO SetDayOfWeekSet 30.
:SetDayOfWeek5 31.
SET DayOfWeekName=Friday 32.
GOTO SetDayOfWeekSet 33.
:SetDayOfWeek6 34.
SET DayOfWeekName=Saturday 35.
GOTO SetDayOfWeekSet 36.
:SetDayOfWeekSet 37.
IF %DayOfWeekName%==NA CALL :LogExit "Kein Tag erkannt" 38.
39.
REM Standort erkennen anhand des Computernamens 40.
SET standort=NA 41.
for /f "tokens=1 delims=- " %%s in ("%COMPUTERNAME%") do set standort=%%s 42.
IF %standort%==NA CALL :LogExit "Kein Standort erkannt" 43.
44.
REM Servertyp erkennen anhand des Computernamens 45.
SET servertyp=NA 46.
for /f "tokens=2 delims=-012" %%a in ("%COMPUTERNAME%") do set servertyp=%%a 47.
IF %servertyp%==NA CALL :LogExit "Kein Servertyp erkannt" 48.
49.
:UNC 50.
REM backup share UNC 51.
SET backupfolder=%DayOfWeekName% 52.
SET backupshare=NA 53.
SET backupshare=\\%standort%-NAS\backup\%COMPUTERNAME% 54.
IF %backupshare%==NA CALL :LogExit "Kein Sicherungsziel ermittelt." 55.
IF NOT EXIST %backupshare%\%DayOfWeekName% GOTO makeDIR 56.
57.
REM LOG der Variablen 58.
ECHO Serverstandort: %standort% > %backupshare%\%DayOfWeekName%.log 59.
ECHO servertyp: %servertyp% >> %backupshare%\%DayOfWeekName%.log 60.
ECHO Servername: %COMPUTERNAME% >> %backupshare%\%DayOfWeekName%.log 61.
ECHO Sicherungsziel: %backupshare%\%DayOfWeekName% >> %backupshare%\%DayOfWeekName%.log 62.
ECHO. >> %backupshare%\%DayOfWeekName%.log 63.
ECHO Backup vom %date% um %time% Uhr >> %backupshare%\%DayOfWeekName%.log 64.
ECHO. >> %backupshare%\%DayOfWeekName%.log 65.
ECHO. >> %backupshare%\%DayOfWeekName%.log 66.
67.
IF %servertyp%==WSS CALL :BackupWSS 68.
GOTO BackupSRV 69.
70.
71.
72.
:makeDIR 73.
ECHO Zielverzeichnis %backupshare%\%DayOfWeekName% existiert nicht und musste erstellt werden >> %backupshare%\%DayOfWeekName%.log 74.
MD %backupshare%\%DayOfWeekName% 75.
IF errorlevel 1 CALL :LogExit "Verzeichnis %backupshare%\%DayOfWeekName% kann nicht erstellt werden. Kein Sicherungsziel verfuegbar." 76.
ECHO Zielverzeichnis %backupshare%\%DayOfWeekName% wurde erfolgreich erstellt! >> %backupshare%\%DayOfWeekName%.log 77.
GOTO UNC 78.
79.
80.
:BackupSRV 81.
REM files and folders to include 82.
SET include=D:,Z: 83.
84.
REM run the backup 85.
ECHO --------------------------------------------------------------------------------------------------------------- >> %backupshare%\%DayOfWeekName%.log 86.
ECHO Backing up the critical Volumes and Volume %include% to %backupshare% >> %backupshare%\%DayOfWeekName%.log 87.
wbadmin start backup -allcritical -include:%include% -backuptarget:%backupshare%\%DayOfWeekName% -quiet >> %backupshare%\%DayOfWeekName%.log 88.
ECHO --------------------------------------------------------------------------------------------------------------- >> %backupshare%\%DayOfWeekName%.log 89.
GOTO Clear 90.
91.
:BackupWSS 92.
REM files and folders to include 93.
SET include=Systemstate,c:\,d:\ 94.
95.
REM run the backup 96.
ECHO --------------------------------------------------------------------------------------------------------------- >> %backupshare%\%DayOfWeekName%.log 97.
ECHO Sichere %include% nach "%backupshare%\%DayOfWeekName%\%COMPUTERNAME%.bkf" >> %backupshare%\%DayOfWeekName%.log 98.
ntbackup backup %include% /J "%COMPUTERNAME%.JOB" /F "%backupshare%\%DayOfWeekName%\%COMPUTERNAME%.bkf" /SNAP:on >> %backupshare%\%DayOfWeekName%.log 99.
ECHO --------------------------------------------------------------------------------------------------------------- >> %backupshare%\%DayOfWeekName%.log 100.
IF errorlevel 1 CALL :LogExit "NTBackup hat einen Fehler gemeldet! Bitte die EreignisLOGS prüfen!" 101.
102.
:Clear 103.
ECHO. >> %backupshare%\%DayOfWeekName%.log 104.
ECHO. >> %backupshare%\%DayOfWeekName%.log 105.
ECHO. >> %backupshare%\%DayOfWeekName%.log 106.
107.
REM Clear variables 108.
SET backupshare= 109.
SET include= 110.
111.
GOTO :EOF 112.
113.
:sleep 114.
:: sleep for x number of seconds 115.
ping 127.0.0.1 -n 2 -w 1000 > NUL 116.
ping 127.0.0.1 -n %1 -w 1000 > NUL 117.
GOTO :EOF 118.
119.
:LogExit 120.
ECHO %1 >> %backupshare%\%DayOfWeekName%.log 121.
CALL :sleep 5 122.
exit 123.
GOTO :EOF 124.
125.
:EOF 126.
x-scips schreibt am 12.03.2011 um 11:24:13 Uhr
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
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
Icedg schreibt am 04.05.2011 um 12:04:30 Uhr
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
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













