MBackup von Martin Schulze

Management summary

MBackup ...

MBackup unterstützt zusätzlich eine Wanderarchivierung und eine Linkarchivierung, wobei ebenfalls nur geänderte Dateien übertragen werden. Alle unveränderten Dateien werden bei der Wanderarchivierung in das jeweils aktuellste Sicherungsverzeichnis verschoben bzw. bei der Linkarchivierung mit dem letzten Backup durch Hardlinks verlinkt. Auf diese Weise erhält man jeweils eine vollständige Historie aller Dateien bei minimalem Platzbedarf.

Erste Schritte


Das Konzept

MBackup ist ein in Delphi entwickeltes Programm, das ohne Installation oder zusätzliche DLLs lauffähig ist. Es liest und speichert alle für ein Backup erforderlichen Informationen in einer Textbasierten Ini-Datei (*.MBK), die in einem beliebigen Verzeichnis gespeichert werden kann.
Beispiel für eine *.MBK Datei:

src:C:\Daten\
dest:\\server\freigabe\Backup\
fileCount:2423
ignoreDifference:0
destTimeOffset:0
Include:*
Exclude:

Die einzigen Pflichtangaben in einer solchen Datei sind die ersten beiden Zeilen, die Quelle und Ziel enthalten. Alle anderen Angaben sind optional.

Sobald MBackup mit dieser Ini-Datei gestartet wird, durchsucht es die angegebenen Verzeichnisse und vergleicht den Inhalt anhand von Dateiänderungsdatum und Dateigröße. Damit wird eine Aktionsliste erstellt, durch die das Zielverzeichnis auf den gleichen Stand gebracht wird, wie das Originalverzeichnis. Das bedeutet, daß neue oder geänderte Dateien auf das Zielverzeichnis übertragen werden und im Original gelöschte Dateien auch im Ziel gelöscht werden. Bevor die Aktionen jedoch ausgeführt werden, wird die vollständige Liste zur Kontrolle angezeigt und erst nach einem Klick auf "Backup" abgearbeitet. Nachdem alle Dateien abgeglichen wurden, werden die beiden Verzeichnisse noch einmal durchsucht und verglichen. Jetzt sollten keine Unterschiede mehr angezeigt werden.

Die *.MBK Datei kann selbstverständlich auch von Hand erstellt oder bearbeitet werden.

Es stehen drei verschiedene Sicherungsarten zur Auswahl:

1) Einfache Sicherung

Mit dieser Methode wird im Zielverzeichnis eine Kopie des Originals erstellt, die bei jedem Sicherungslauf auf den aktuellen Stand gebracht wird. Es werden jeweils nur die neuen und geänderten Dateien übertragen bzw. gelöschte Dateien werden gelöscht.
Quelle:\Daten\...
Ziel:\Daten\...

Vorteile

Nachteile

2) Wanderarchivierung

Bei der Wanderarchivierung wird bei jeder Sicherung ein neues Verzeichnis (benamt mit Datum) im Sicherungsverzeichnis angelegt, die unveränderten Dateien werden aus dem letzten Sicherungsverzeichnis in das aktuelle verschoben und danach werden nur die veränderten oder neuen Dateien übertragen. Dadurch verbleiben die Dateien, die sonst überschrieben würden im letzten Sicherungsverzeichnis und im aktuellen befindet sich eine vollständige Kopie des Originals.
Quelle:\Daten\...
Ziel:\Daten\2007-01-01 18-12\...
Ziel:\Daten\2007-01-07 18-05\...
Ziel:\Daten\2007-01-14 18-17\...
etc.

Vorteile

Nachteile

3) Linkarchivierung

Die Linkarchivierung erstellt ebenfalls bei jeder Sicherung ein neues Verzeichnis (benamt mit Datum) in dem für alle unveränderten Dateien NTFS Hardlinks zur letzten Sicherung angelegt werden und in das neue bzw. geänderte Dateien kopiert werden. Hardlinks können wie echte Dateien verwendet werden, es wird aber nur der Platz für den Verzeichniseintrag benötigt. Eine Datei mit mehreren solchen Verzeichniseinträgen wird erst gelöscht, wenn der letzte Eintrag gelöscht wird. Durch die Verwendung der Hardlinks enthält jede Sicherung alle zu dem Zeitpunkt existierenden Dateien.
Quelle:\Daten\...
Ziel:\Daten\2007-01-01 18-12\...
Ziel:\Daten\2007-01-07 18-05\...
Ziel:\Daten\2007-01-14 18-17\...
etc.

Vorteile

Nachteile

Parameter in der *.MBK Datei

Beispiel für eine *.MBK Datei:

src:C:\Daten\
dest:\\server\freigabe\Backup\
params:/A /l:logs\test.log
fileCount:2423
ignoreDifference:0
destTimeOffset:0
Include:*
Exclude:

src:
Die erste Zeile der Datei muß mit src: beginnen. Danach folgt das Quellverzeichnis auf das grundsätzlich nur lesend zugegriffen wird. Für die Notation gelten die gleichen Regeln, wie für dest:

dest:/move/:arch:
Die zweite Zeile der Datei muß mit dest:, move: oder arch: beginnen. Danach folgt das Zielverzeichnis in dem das Backup angelegt wird. Dabei bedeutet dest: Einfache Sicherung, move: Wanderarchivierung und arch: Linkarchivierung. Die Notation der Verzeichnisse folgt den algemeinen Konventionen:

params: - optional
Hier können dieselben Parameter angegeben werden, die auch auf der Kommandozeile verwendet werden können. So ist es nicht erforderlich, einen Link oder eine Batch Datei anzulegen, um Parameter übergeben zu können. Bsp: params:/A /l:logs\test.log

fileCount: - optional
Automatisch gespeicherte Anzahl der Dateien beim letzten Backuplauf für die Verlaufsanzeige.

ignoreDifference: - optional
ignoreDifference:0 Erwartet eine sekundengenaue Übereinstimmung der Dateidaten. Ansonsten wird die Datei als verändert betrachtet. Um den FAT 2 Sekunden Bug zu umgehen, kann hier eingestellt werden, wie viele Sekunden Differenz MBackup noch als "gleich" ansieht.

destTimeOffset: - optional
Eine Umstellung von Winter- auf Sommerzeit oder umgekehrt ändert auf NTFS Laufwerken alle Dateiänderungsdaten um eine Stunde. Bei einem Backup zwischen NTFS und FAT Laufwerken, kann dies zu überflüssigen Aktionen führen. Es kann eine Zeitdifferenz angegeben werden, die beim Vergleich auf alle Daten angewendet wird. Für eine Stunde Abzug auf dem Ziellaufwerk: Bsp: destTimeOffset:-1

Include: - optional
Standardeinstellung: Include:* schließt alle Dateien ein, die gefunden werden. Mehrere Filter können mit dem Pipe Symbol | nacheinander angegeben werden. Es muß mindestens ein Filter zutreffen. Wichtig: die Datei "test name.doc" wird so nur im Hauptverzeichnis akzeptiert, "test name2.doc" dagegen auch in allen Unterverzeichnissen. Bsp: Include:*.jpg|*.gif|test name.doc|*\test name2.doc

Exclude: - optional
Standardeinstellung: Exclude: filtert keine Dateien aus. Mehrere Filter können mit dem Pipe Symbol | nacheinander angegeben werden. Es darf kein Filter zutreffen. Bsp: Exclude:*.dat|*thumbs.db|test\co*.txt|RECYCLER\*

Kommandozeilenparameter

MBackup kann per "Öffnen mit", per Verknüpfung oder per Batch Datei gestartet werden. Im ersten Fall können die folgenden Parameter nur über den "params" Eintrag in der *.MBK Datei übergeben werden. In den beiden letzteren Fällen, können beim Aufruf die folgenden Parameter verwendet werden.

MBackup [/a] [/A] [/o] [/q] [/l:LogDateiName] [/L:LogDateiName] Dateiname
Dateiname     Name der (Text-) Eingabe Datei bzw. *.MBK-Datei
/a     automatic - Führt das Backup automatisch und ohne Nachfrage durch. Es ist keine Interaktion mit dem Nutzer vorgesehen.
/A     Almost automatic - Halbautomatischer Modus: MBackup läuft wie immer, allerdings beendet es sich automatisch, falls es keine geänderten Dateien findet bzw. sobald der Abgleich durchgeführt wurde. Unterschied zu /a ist, daß der Benutzer einmal die Aktionsliste prüfen und mit "Backup" oder "Beenden" entscheiden kann, was passiert.
/o     Overwrite - Auch schreibgeschützte Dateien ohne Nachfrage löschen oder überschreiben. Standardeinstellung.
/q     Quiet - Falls ein Fehler beim Kopieren einer Datei auftritt, versucht MBackup drei mal die Datei zu kopieren und übergeht den Fehler dann ohne Meldung am Bildschirm.
/l:LogDateiName     log - Schreibt eine Zusammenfassung der durchgeführten Aktionen in die Datei LogFileName
/L:LogDateiName     Log - Schreibt eine komplette Aufstellung der durchgeführten Aktionen in die Datei LogFileName - Eher sinnvoll zum Debuggen!

Tips / FAQ

Durchsuchen ist sehr langsam
Bei einem Backup mit einem Windows Rechner als Server kann es vorkommen, daß das Durchsuchen der Verzeichnisse auf dem Server deutlich länger dauert als auf dem lokalen Rechner. Das bessert sich auch beim zweiten Durchsuchen nicht.
Das Problem entsteht durch eine "Eigenschaft" von Windows. Eine Beschreibung inklusive der Registry Einträge, die das Problem bei mir gelöst haben, ist bei Microsoft unter der Knowledgebase Artikelnummer 177266 zu finden.

Manchmal können einige Dateien nicht geschrieben werden
Je nach verwendetem Dateisystem gibt es unterschiedliche Grenzen für die maximale Anzahl an Zeichen für einen Dateinamen. Häufig sind es 256 Zeichen. Wenn der Dateiname inkl. des gesamten Pfades länger als diese 256 Zeichen sind, kann das Betriebssystem die Datei nicht verwalten (das heißt Anlegen, Löschen, Bearbeiten). MBackup meldet diesen Fehler.
Abhilfe verspricht an dieser Stelle nur das Umbennen der Datei (oder des Pfades) oder ein Dateisystem das mehr Zeichen zuläßt, z.B. NTFS.

FileTimetoDateTimeMS: "Ungültiges Argument beim Codieren des Datums." beim Lesen des Änderungsdatums der Datei ...
Die bezeichnete Datei hat ein ungültiges Änderungsdatum. Da dieses Datum die Basis für alle Aktionen von MBackup ist, sollte die Datei auf jeden Fall korrigiert werden. Technisches Detail: verwendet wird LastWriteTime.

Haftungssausschluß:

Das Herunterladen und die Verwendung der Progamme erfolgt auf eigene Gefahr! Wir übernehmen keine Gewährleistung oder Haftung für etwaige Schäden, Folgeschäden oder Ausfälle, die entstehen können. Die Nutzer verzichten auf jedwede Ansprüche gegen uns, die sich aus diesen Vorgängen ergeben können. Wir übernehmen keine Haftung oder Gewährleistung für Schäden, die entstehen, weil Software, Beschreibungen, Links oder sonstige Inhalte fehlerhaft sind. Wir übernehmen keine Haftung für Schäden, die durch Irrtümer enstehen. Wir haften nicht für Schäden, die aus dem Download oder der Benutzung der aufgeführten Software entstehen können. Wir haften nicht für Schäden, die aus dem Mißbrauch der übermittelten Daten und Programme entstehen, ebenso wenig für Schäden, die durch den Besuch dieser Seiten entstehen können. UND wir sind nicht schuld!