NTBackup unter Windows 2000/2003 – Datensicherung auf Festplatte

Hier finden Sie ein Beispiel, wie mit NTBackup eine Datensicherung auf Festplatte eingerichtet werden kann. Das hier vorgestellte Backup Skript kann, richtig eingesetzt, auch eine Ergänzung zu einer bestehenden, zentralen Datensicherung sein.

Bitte passen Sie das Beispiel an Ihre eigenen Bedürfnisse an – zumindest die Pfade sollten eingetragen und die .bks Dateien mit NTBackup erzeugt werden.

Das Skript legt drei Backup-Dateien an, im Beispiel je eine für

  • Dateidaten
  • Systemstatus
  • Exchange 200x Datenbanken

Selbstverständlich kann man das auch mit einer einzigen .bks Datei erledigen, allerdings erhält man durch das Splitten eine größere Wahrscheinlichkeit für lesbares Backup, wenn diese Sicherungsdateien anschließend von einem zweiten Backup-Job auf Band geschrieben werden sollen. Hat das Band bei einer einzigen großen Sicherungsdatei einen Lesefehler, ist die komplette Sicherung betroffen – beim Splitten in Einzelsicherungen nur der jeweilige Teil.

Sofern ausreichend Platz auf einer Sicherungs-Festplatte vorhanden ist bzw. die Nutzdaten nicht zu viel sind, kann man auch mehrere Verzeichnisse für z.B. die Sicherung des Vortags oder des vorgestrigen Tags vorsehen.
In jedem Fall sollte eine Datensicherung auf Band oder auf ein separates System erfolgen – z.B. von einem separaten Server, welcher ein Bandlaufwerk eingebaut hat. Bitte kontrollieren Sie die Logdateien und stellen Sie sicher, dass sämtliche Backup-Jobs erfolgreich sichern und prüfen Sie regelmäßig die Wiederherstellbarkeit der Daten!

Verwendete Tools

Das Skript verwendet den „date“-Befehl aus dem UnxUtils Paket (Benutzung laut dortigem Disclaimer auf eigene Gefahr). Um Verwechslungen auszuschließen, wurde die .exe Datei in „unixdate.exe“ umbenannt.

Wer diesen date-Befehl nicht mag, der kann gerne die entsprechenden Zeilen jeweils ersetzen durch

rem Zeitstempel-String erzeugen
for /f "Tokens=1-4 Delims=/. " %%i in ('date /t') do set dt=%%i-%%j-%%k-%%l
for /f "Tokens=1" %%i in ('time /t') do set tm=-%%i
set tm=%tm::=-%
set dtt=%dt%%tm%

Einen „sleep“ Befehl zum Anhalten des Skripts für n Sekunden muß man nicht zwingend verwenden; ansonsten findet man ihn ebenfalls im UnxUtils-Paket oder auch im Ressource Kit.

Ob die Sicherungsdateien gezippt werden sollen, ist natürlich Geschmackssache. Evtl. sollte man die ZIP-Zeile im Skript anpassen bzw. an die richtige Stelle schieben, wenn man nicht möchte, dass alle Sicherungsdaten gezippt werden sollen. Als ZIP-Befehl wird „zip.exe“ aus dem UnxUtils-Paket verwendet. Der Aufruf mit

zip -9 -m meinzipfile.zip meinedaten

bedeutet, daß das Zippen mit maximaler Kompression („-9“) und mit einem Verschieben („-m“) in die ZIPdatei erfolgt.

unixdate.exe aus dem UnxUtils Paket
sleep.exe aus dem UnxUtils Paket
zip.exe aus dem UnxUtils Paket
Sourceforge: GNU utilities for Win32 (UnxUtils)

Backup Skript

@echo off
@title Datensicherung
@color 1F

rem ##################################################
rem # NTBackup-Sicherung auf Platte (v 2005090201) #
rem # www.netzprisma.de #
rem ##################################################

rem Skript und .bks Dateien in c:\admin\backup
set configdisk=c:
set configdir=%configdisk%\admin\backup

rem Datensicherung nach d:\backup (auf Festplatte)
set backupdir=d:\backup

rem Name des Servers
set serverbackup=%COMPUTERNAME%

rem **********************************************************
rem * evtl. Ergänzung für mehrtägige Sicherung hier einfügen *
rem **********************************************************

%configdisk%
cd %configdir%

rem *** Systemstatus-Sicherung ***

rem Zeitstempel-String erzeugen
for /f "Tokens=1" %%i in ('unixdate +%%Y%%m%%d-%%H%%M') do set dtt=%%i

del /Q %backupdir%\%serverbackup%_systemstatus_backup*.bkf
echo Sicherung Systemstatus von %serverbackup%
ntbackup backup SystemState /n "%serverbackup%-Backup Systemstatus %dtt%" ^
/d "%serverbackup%-Sicherung Systemstatus %dtt%" ^
/v:no /r:no /rs:no /hc:off /m normal ^
/l:f /f "%backupdir%\%serverbackup%_systemstatus_backup_%dtt%.bkf"
sleep 10

rem *** Dateidaten-Sicherung ***

for /f "Tokens=1" %%i in ('unixdate +%%Y%%m%%d-%%H%%M') do set dtt=%%i

del /Q %backupdir%\%serverbackup%_datei_backup*.bkf
echo Sicherung Datei-Daten von %serverbackup%
ntbackup backup "@%configdir%\%serverbackup%-datei-backup.bks" ^
/n "%serverbackup%-Backup Dateidaten %dtt%" ^
/d "%serverbackup%-Sicherung Dateidaten %dtt%" ^
/v:YES /r:no /rs:no /hc:off /m normal ^
/l:f /f "%backupdir%\%serverbackup%_datei_backup_%dtt%.bkf"
sleep 10

rem *** Exchange200x-Sicherung ***

for /f "Tokens=1" %%i in ('unixdate +%%Y%%m%%d-%%H%%M') do set dtt=%%i

del /Q %backupdir%\%serverbackup%_exchangedb_backup*.bkf
echo Sicherung Exchange-DB von %serverbackup%
ntbackup backup "@%configdir%\%serverbackup%-exchangedb-backup.bks" ^
/n "%serverbackup%-Backup ExchangeDB %dtt%" ^
/d "%serverbackup%-Sicherung Exchange %dtt%" ^
/v:no /r:no /rs:no /hc:off /m normal ^
/l:f /f "%backupdir%\%serverbackup%_exchangedb_backup_%dtt%.bkf"

rem ********************************
rem * ZIPpen der Sicherungsdateien *
rem * (zip-Befehl aus UnxUtils) *
rem ********************************
rem for %%f IN ("%backupdir%\%serverbackup%*.bkf") do zip -9 -m "%%f.zip" "%%f"

rem *****************************
rem * Ergänzung für Logrotation *
rem *****************************
rem logrotation.bat

rem ********************************************************
rem * evtl. Ergänzung E-Mail-Benachrichtigung hier einfügen *
rem ********************************************************

 

Mehrere Sicherungen (Vortag, Vorvortag etc.) auf Platte

Beispiel: Ergänzung zu obigem Skript
Bitte an der angegebenen Stelle ins Skript einfügen, die aktuelle Sicherung wird dann
täglich im „heute“ Verzeichnis abgelegt.

rem *** Verzeichnisse vorbereiten ***

rmdir /S /Q %backupdir%\_vorgestern

ren %backupdir%\_gestern _vorgestern
ren %backupdir%\heute _gestern
mkdir %backupdir%\heute

rem optional: Verzeichnis für Exmerge-Sicherung
rem Pfad auf das "heute" Verzeichnis muß in der exmerge.ini angegeben werden
rem mkdir %backupdir%\heute\Exmerge-Backup

set backupdir=%backupdir%\heute

Benachrichtigung per E-Mail

Einfache Benachrichtigung, dass das Backup abgeschlossen ist – beinhaltet NICHT die Information, dass es erfolgreich abgeschlossen worden ist, sondern lediglich dass das Skript fertig ist.

Man benötigt dazu „blat“, mit dem per Kommandozeile eine E-Mail versendet werden kann
www.blat.net

Beispiel: Erweiterung zur E-Mail-Benachrichtigung

@echo off
rem **********************************************************
rem * evtl. Ergänzung für mehrtägige Sicherung hier einfügen *
rem **********************************************************

blat blat_email-vorlage.txt -s "Backup SRV01 abgeschlossen" -to postmaster@#####.de

Beispiel: blat_email-vorlage.txt

Hallo,
das Backup auf dem Server SRV01 ist abgeschlossen.

Dies ist KEINE "backup ok"-Meldung, sondern lediglich "backup abgeschlossen".
Ob erfolgreich oder nicht, steht hoffentlich in den Ntbackup-Logdateien.

Viele Grüße
Ihr Backup

Weitere Informationen

NP FAQ: NTBackup Win2003 Befehlszeilenparameter

NP FAQ: NTBackup unter Win200x – Bandsicherung per Skript