MS Exchange sichern mit Bacula
Aus FelixSchwarz
Bacula kann auch benutzt werden, um einen MS Exchange Server zu sichern. Allerdings spielt auch ntbackup eine Rolle, so dass die klassischen Nachteile dieses Schmalspur-Backupprogramms zu tragen kommen. Damit ein Exchange-Server wirklich ausschließlich mit Bacula gesichert werden kann, müsste Bacula eine Plugin-API anbieten. Ein erster Schritt in diese Richtung könnte schon in der kommenden Version 1.37 getan werden.
Solange ist aber noch eine andere Vorgehensweise erfoderlich...
Achtung: Die vorliegenden Dateien funktionieren nur mit Windows 2000 und Exchange 2000. Im Windows Server 2003 hat Microsoft wohl die Kommandozeilen-Parameter von ntbackup geändert, so dass das angepasst werden müsste. Entsprechende Hinweise gerne an mich.
Inhaltsverzeichnis |
Übersicht
- Man startet ntbackup manuell, stellt die gewünschten Parameter ein und sichert diese Job als bks-Datei.
- Ein RunBeforeJob ruft ntbackup mit einigen Parametern auf, so dass am Ende die Exchange-Daten in einer Datei stehen.
- Diese Datei wird dann gesichert.
Im Detail
bks-Datei erstellen
TODO
Bacula-Konfiguration
Aus der bacula-dir.conf:
Job {
Name = "Exchange"
...
FileSet = "Exchange_files"
Client Run Before Job = "C:\\bacula\\exchange\\exchange.bat %l"
Client Run After Job = "del /F /Q C:\\bacula\\exchange\\files\\*"
}
FileSet {
Name = "Exchange_files"
Include {
Options {
compression=GZIP
signature=MD5
portable=yes
}
File = "C:/bacula/exchange/files"
}
}
Vermutlich könnte man sogar die GZIP-Kompression weglassen, da ich vermute, dass ntbackup bereits komprimiert.
Den Windows-Filedaemon konfiguriert wie jeden anderen Filedaemon auch, daher gebe ich diese Konfiguration hier nicht an.
Windows-Konfiguration
Ich habe folgende Verzeichnisse angelegt:
C:\
|
|- bacula\
|
|- exchange\
|
|- exchange.bat
|- exchange.py
|- files\
Die exchange.bat hat eigentlich nur den Zweck, anschließend das eigentliche Python-Skript aufzurufen, ohne dass man im Bacula director den Windows-Pfad des Python-Interpreters kennen muss... Die eigentliche Arbeit macht exchange.py, womit auf dem Exchange-Server natürlich Python installiert sein muss. Alternativ kann man auch die bat-Datei etwas erweitern (bzw. die auskommentierten Befehle wieder aktivieren), aber diese verkrüppelte Windows-Skriptsprache der CMD.EXE ist nun wirklich nicht schön.
Das Skript kann Exchange komplett oder differentiell sichern, alle anderen Bacula-Level werden auf differentiell abgebildet.

