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