Konfiguration

Die Konfiguration wird für FullBackup und IncrementalBackup getrennt in XML-Dateien festgelegt: FullBackup.conf und IncrementalBackup.conf. Der größte Teil der Konfiguration unterscheidet sich nicht. Wo es Unterschiede sind, ist dies gesondert erwähnt.

Sources

<Sources>

    <Source Path="D:\BenutzerDaten" Name="DATA"/>

    <Source Path="F:\" Name="DriveF" />

</Sources>

Es können beliebig viele Quellen für das Backup angegeben werden.

Source Path

Definiert die Ordner oder Freigaben, die gesichert werden sollen.

Name

Auf dem Ziellaufwerk wird ein Verzeichnis mit diesem Namen angelegt. Es empfiehlt sich, den Namen kurz und prägnant zu wählen.

Targets

<Targets>

    <Target Path="I:\" FreeGB="1" />

    <Target Path=" VolumePrefix[Weekly]\Sicherung" />

    <Target>

        <Switch Path="J:\" FreeGB="5" />

        <Switch Path="K:\" FreeGB="5" />

    </Target>

</Targets>

Definiert die Ziellaufwerke für die Sicherung.

Path

Definiert Zielordner/Laufwerk. Ist der Laufwerksbuchstabe unbekannt, so kann auch "VolumePrefix[name]" verwendet werden. In diesem Fall wird nach dem ersten Laufwerk gesucht, dessen Name mit "name" beginnt. Hiermit können z.B. externe Festplatten angesprochen werden, deren zugewiesener Laufwerksbuchstabe bei Konfiguration des Backups noch nicht bekannt ist. Eine sinnvolle Bezeichnung für die Laufwerke wäre z.B. "Weekly1", "Weekly2" usw. "VolumePrefix[Weekly]" spricht dann die jeweils angeschlossene Platte an.

FreeGB

Der Sicherungsjob hält auf den Ziellaufwerken die hier angegebene Menge an Speicherplatz frei. Wird der Wert unterschritten, so werden automatisch alte Sicherungen gelöscht, um Platz zu schaffen. Default: FreeGB="1".

Switch

Ein "target" Node kann auch ohne Attribute, dafür aber mit "switch" Child Nodes angegeben werden. Die "switch" Nodes können dann wiederum die selben Attribute haben wie ein einzelnes "target" Attribut. Beim Schreiben in diese "switch" Ziele wird dasjenige verwendet, das am längsten nicht mehr Ziel eines Backups war. Um den tatsächlichen Zielpfad auszuwählen, werden die Namen der "Datumsordner" in möglichen Zielpfaden ausgewertet. Datums- und Zeitangaben im Filesystem sind in dieser Hinsicht nicht relevant.

LogFiles

<LogFiles Path="f:\" />

Path

In diesem Pfad werden zwei LogFiles gespeichert: [DATUM]_progress.log und [DATUM]_warning.log. Das Datum wird im Format "JJMMTT" eingesetzt, so dass sich bei alphabetischer Sortierung eine fortlaufende Anordnung ergibt. Im Progress-Log wird der Fortschritt der Sicherung abgelegt. Es werden Infos zu Quellen und Ziellaufwerken geschrieben und alle kopierten Dateien aufgelistet. Am Ende jeder Quelle wird ein Block mit statistischen Informationen eingefügt. Im Warning-Log werden alle nicht kopierbaren Dateien aufgelistet.

Der Inhalt des Warning-Logs und statistische Infos werden an die unter SmtpMail definierte E-Mail-Adresse gesendet. Fehlermeldungen, z.B. bei Abbrüchen des Backups, gehen ins Event-Log und, soweit möglich, auch an die SmtpMail.

ArchiveBit

<ArchiveBit Ignore="yes" Reset="no" />

Definiert den Umgang mit dem ArchiveBit der Quell-Dateien.

Ignore (nur IncrementalBackup)

Wird Ignore="yes" gewählt, so kopiert IncrementalBackup alle Dateien. Bei Ignore="no" werden nur Dateien kopiert, deren Archiv-Bit gesetzt ist. FullBackup kopiert immer alle Dateien. (Nur bei IncrementalBackup.)

Reset

Bei Reset="yes" wird nach dem erfolgreichen Kopieren das Archiv-Bit der Quelldatei zurückgesetzt. Bei Reset="no" bleibt der alte Zustand erhalten.

DayOffset

<DayOffset Hours="8" />

Hours

Definiert die zeitliche Zuordnung eines Sicherungslaufs zu einem Tag. Die angegebene Stundenzahl wird zur Ermittlung des Datums der Sicherung von der aktuellen Zeit abgezogen. Bei der Einstellung Hours="8" wird ein Backup, welches vor 8 Uhr gestartet wird, noch in ein Verzeichnis mit Datum des Vortages geschrieben. Auch das Logfile wird unter dem korrigierten Datum angelegt. Das zum Beginn des Laufes ermittelte Datum gilt für den gesamten Lauf.

Security

<Security Copy="yes" />

Copy

Definiert die Behandlung der Sicherheitseinstellungen auf dem Target. Bei Copy="yes" werden die Sicherheitseinstellungen (Zugriffsrechte) der kopierten Dateien mitkopiert. Beachten Sie:

Priority

<Priority Value="Normal" />

Value

Definiert die Priorität des Sicherungstasks. Value gibt die Task-Priorität an: Normal, Low, Lowest.

Sleep

<Sleep Milliseconds="0" />

Milliseconds

Definiert die Wartezeit nach dem Kopieren einer Datei. Nach jeder kopierten Datei "schläft" der Prozess für die angegebene Anzahl von Millisekunden.

SmtpMail

<SmtpMail>

    <Server Name="smtp.provider.de" />

    <To Name="bdmin@firma.de" />

    <From Name="backupserver@firma.de" />

</SmtpMail>

Definiert den SMTP Server und Adressen für den E-Mail-Status-Report.

Server Name

Adresse des SMTP Servers.

To Name

Empfänger der E-Mail.

From Name

Absender der E-Mail (viele SMTP-Server verlangen eine existierende E-Mail-Adresse für den Absender).

DatabaseLogging

Microsoft SQL Server

<DatabaseLogging>

    <Type Name="MSSql" />

    <Connection Name="server=(local);uid=sa;pwd=geheim;database=backuplog;" />

    <Table Name="backuplog" />

</DatabaseLogging>

Jet (Access)

<DatabaseLogging>

    <Type Name="Jet" />

    <Connection Name="Provider=Microsoft.Jet.OLEDB.4.0;data source=C:\Backup\Jet\backuplog.mdb" />

    <Table Name="backuplog" />

</DatabaseLogging>

Definiert eine Datenbank, in die dann zusätzlich das Log geschrieben wird.

Type Name 

Typ der verwendeten Datenbank. Erlaubt sind: MSSql, Odbc, OleDb und Jet.

Connection Name

Connectionstring zur Datenbank. Beispiel-Syntax abhängig vom verwendeten Datenbank-Typ.

Table Name

Tabelle innerhalb der Datenbank.

ExistingDateFolder (Nur FullBackup)

<ExistingDateFolder DeleteBySource="no" ReuseSwitchTarget="yes" />

Definiert das Verhalten der Software, falls zu kopierende/anzulegende Ordner bereits auf dem Target existieren. (Nur bei FullBackup.) 

DeleteBySource

DeleteBySource="no": Wenn im Target bereits ein Verzeichnis für das heutige Datum existiert, wird dessen Inhalt komplett gelöscht.

DeleteBySource="yes": Wenn Im Target bereits ein Verzeichnis für das heutige Datum und die aktuelle Source (definiert in <Source Name=…>) existiert, wird nur dieses Source-Verzeichnis gelöscht.

Mit dieser Funktion kann man nacheinander verschiedene Sourcen in ein gemeinsames Zielverzeichnis schreiben, ohne daß sich die Vorgänge gegenseitig beeinflussen.

ReuseSwitchTarget

ReuseSwitchTarget="no": Die Switch-Logik arbeitet streng nach Datum des letzten Backups: Wenn man das Backup zweimal hintereinander startet, hat man anschließend auf zwei Switch-Zielen ein Verzeichnis mit dem heutigen Datum. 

ReuseSwitchTarget="yes": Wenn auf einem der Switch-Ziele bereits ein Verzeichnis mit dem heutigen Datum existiert, wird dieses wieder herangezogen.

Konfigurationsbeispiel

Um das Konzept und die Anwendung der einzelnen Optionen etwas klarer zu machen, ist hier unsere eigene Konfiguration mit den Überlegungen, die dahinter stecken. Der Übersichtlichkeit halber haben wir Kommentare in Kursivschrift in die XML-Datei geschrieben.

Fullbackup.conf

<?xml version="1.0" encoding="utf-8"?>

<Configuration>

    <Targets>

        <Target>

            <Switch Path="g:\" FreeGB="1" />

            <Switch Path="h:\" FreeGB="1" />

        </Target>

        <Target Path="VolumePrefix[WeeklyExt]" FreeGB="1" />

    </Targets>

<!--

Es wird abwechselnd auf den internen Laufwerken "g:\" und "h:\" gesichert. Zusätzlich wird immer auf einer externen Festplatte, deren Volumename mit "WeeklyExt" beginnt, gesichert. Wir verwenden derzeit 5 externe Festplatten, bezeichnet mit "WeeklyExt1" bis "WeeklyExt5", die im Wechsel beschrieben werden. Die externen Laufwerke befinden sich normalerweise räumlich getrennt vom Büro, um Risiken wie Brand o.ä. abzudecken. Durch die zusätzlichen Kopien auf interne Platten erreichen wir zusätzliche Redundanz, und wir können die Daten im normalen Betrieb schneller wiederherstellen.

-->

    <DayOffset Hours="10" />

<!--

Sollte die Sicherung aus irgend einem Grund nicht ordnungsgemäß funktioniert haben, so kann man den Backuplauf bis 10:00 Uhr am folgenden Tag wiederholen. In diesem Fall wird trotzdem das Datum des Vortages zur Ablage der Sicherung verwendet.

-->

    <ExistingDateFolder DeleteBySource="yes" ReuseSwitchTarget="yes" />

<!--

Durch die "ReuseSwitchTarget" Option werden die Daten wieder ins selbe Ziellaufwerk/Verzeichnis geschrieben. Durch die "DeleteBySource" Option wird vor dem Kopieren nicht das gesamte Zielverzeichnis gelöscht, sondern nur die einzelnen Sourcen. Dadurch kann man Zeit sparen, weil bereits erfolgreich kopierte Sourcen erhalten bleiben.

-->

    <Sources>

        <Source Path="\\server3\exchangefiles" Name="exchange" />

        <Source Path="\\server3\systemstates" Name="systemstate" />

        <Source Path="\\server3\publicfiles" Name="pub" />

        <Source Path="\\server3\privatefiles" Name="priv" />

    </Sources>

<!--

Das sind die Daten, die gesichert werden. Besondere Daten, die im Betrieb nicht direkt als Dateien gesichert werden können, werden bei uns automatisiert "exportiert" und in besondere Freigaben abgelegt. Im obigen Beispiel sind das die Quellen "exchangefiles" und "systemstates", in denen sich Sicherungen der Systemstates aller Arbeitsplatz-PCs und eines Exchange-Servers befinden.

-->

    <LogFiles Path="c:\Backup\Full\log" />

<!--

Dies ist der Pfad für die Log-Dateien.

-->

    <ArchiveBit Reset="yes" />

<!--

Nach dem Kopieren wird das Archiv-Bit der Originaldateien zurückgesetzt. Der nächste Lauf des täglichen IncrementalBackup kopiert daher nur Dateien, die seit dem letzen wöchentlichen FullBackup geändert wurden.

-->

    <Security Copy="yes" />

<!--

Die Sicherheitseinstellungen der Dateien werden mitkopiert.

-->

    <Priority Value="Low" />

<!--

Der Backup-Process wird mit niedriger Priorität gestartet. Dadurch wird auf Ziellaufwerken, bei denen Komprimierung aktiviert ist, schon während des Kopierens komprimiert. Dies ist wichtig, weil sonst die maximale Plattenkapazität nicht ausgenutzt werden kann.

-->

    <Sleep Milliseconds="0" />

<!--

Auf unserem Backup-Server laufen keine weiteren Dienste. Daher ist es nicht notwendig, die Last zu verringern.

-->

    <SmtpMail>

        <Server Name="smtp.cptec.org" />

        <To Name="name1@cptec.org;name2@cptec.org;name3@cptec.org" />

        <From Name="backup_server2@cptec.org" />

<!--

Berichte über den Backup-Lauf werden an die hier definierten E-Mail-Empfänger gesendet.

-->

    <DatabaseLogging>

        <Type Name="MSSql" />

        <Connection Name="server=(local);
        uid=user;pwd=geheim;database=backuplog;" />

        <Table Name="backuplog" />

    </DatabaseLogging>

<!--

Informationen über gesicherte Dateien werden zusätzlich in einer MS SQL Datenbank abgelegt.

-->

</Configuration>

Im folgenden sind nur Unterschiede zu Fullbackup.conf beschrieben.

IncrementalBackup.conf

<?xml version="1.0" encoding="utf-8"?>

<Configuration>

    <Targets>

        <Target>

            <Switch Path="e:\" FreeGB="1" /> <Switch Path="f:\" FreeGB="1" />

        </Target>

        <Target Path="VolumePrefix[DailyExt]" FreeGB="1" />

    </Targets>

<!--

Es wird abwechselnd auf den internen Laufwerken "e:\" und "f:\" gesichert. Zusätzlich wird immer auf einer externen Festplatte, deren Volumename mit "DailyExt" beginnt, gesichert. Wir verwenden derzeit 2 externe Festplatten, bezeichnet mit "DailyExt1" und "DailyExt2", die im Wechsel beschrieben werden. Die externen Laufwerke bedinden sich normalerweise räumlich getrennt vom Büro, um Risiken wie Brand o.ä. abzudecken. Durch die zusätzlichen Kopien auf interne Platten erreichen wir zusätzliche Redundanz, und wir können die Daten im normalen Betrieb schneller wiederherstellen.

-->

    <DayOffset Hours="10" />

<!--

Sollte bei der Sicherung einmal etwas schiefgehen, z.B. eine Freigabe nicht erreichbar sein, so kann man mit diesen Einstellungen den Backuplauf bis 10:00 Uhr am folgenden Tag wiederholen. Die Daten werden wieder ins selbe Ziellaufwerk/Verzeichnis geschrieben. Dateien, die in der Zwischenzeit geändert wurden, werden kopiert. Sie überschreiben dabei die gesicherte Version vom Vortag. Bereits kopierte und seitdem nicht mehr geänderte Dateien werden nicht mehr kopiert. Sie sind bereits auf dem Ziellaufwerk vorhanden.

-->

    <Sources>

        <Source Path="\\server3\exchangefiles" Name="exchange" />

        <Source Path="\\server3\publicfiles" Name="pub" />

        <Source Path="\\server3\privatefiles" Name="priv" />

    </Sources>

    <LogFiles Path="c:\Backup\Incremental\log" />

    <ArchiveBit Ignore="no" Reset="yes" />

<!--

Es werden nur geänderte Dateien (Archiv-Bit gesetzt) kopiert. Nach dem Kopieren jeder einzelnen Datei wird deren Archiv-Bit zurückgesetzt.

-->

    <Security Copy="yes" />

    <Priority Value="Low" />

    <Sleep Milliseconds="0" />

    <SmtpMail>

        <Server Name="smtp.cptec.org" />

        <To Name="name1@cptec.org;name2@cptec.org;name3@cptec.org" />

        <From Name="backup_server2@cptec.org" />

    <DatabaseLogging>

        <Type Name="MSSql" />

        <Connection Name="server=(local);
        uid=user;pwd=geheim;database=backuplog;" />

        <Table Name="backuplog" />

    </DatabaseLogging>

</Configuration>


Version 1.0