MS Exchange sichern mit Bacula

Aus FelixSchwarz

Wechseln zu: Navigation, Suche

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.

Downloads

Persönliche Werkzeuge