Aktionen: Versionen anzeigen
CSBackup

CSBackup ist ein in C# erstelltes Backup-Programm das Backups von Dateien auf NTFS-Laufwerken ablegt.

Die Idee beruht auf dem rsync-Backup-Script von Karsten Violka aus der c't (09/06, S. 126 (kav) "Fix verknüpft; Hard-Link-Backups für Windows").
Eine Anleitung hierfür findet man unter http://alfafox.info/backup-auf-ntfs-festplatte-mit-rsync.htm.

Die Einschränkung auf 260 Zeichen Pfadlänge hat mich besonders gestört und war der Grund für eine Neuentwicklung in C#. Eclipse legt bei der Java-Entwicklung deutlich längere Pfade an. Diese lassen sich mit dem rsync-Script nicht mehr auf meine externen USB-Platten sichern.

Funktion

Die Backups werden untereinander durch NTFS-HardLinks verknüpft, wenn sich diese seit dem letzten Backup nicht geändert haben. Geänderte Dateien werden kopiert.

Anleitung

CSBackup sucht eine Datei "config.xml". Deren Name kann optional auch als Startparameter angegeben werden.
Die Datei muss folgenden Aufbau haben:

<?xml version="1.0" encoding="utf-8" ?>
<config>
<backup>
<source>
<path>C:\temp\sourceTest\</path>
</source>
<source>
<path>C:\temp\sourceTest2\</path>
</source>
<targetPath>C:\temp\targetTest2\</targetPath>
</backup>
</config>
  • Config-Source-Path:
    • Es können beliebig viele Quellen angegeben werden.
  • Config-Target-Path:
    • Ziel für die Backups. Es wird jeweils ein Verzeichnis mit Datum+Uhrzeit angelegt in das die Backupdateien kopiert werden.

Ich verwende für jedes Backup eine kleine BAT-Datei die die CSBackup.exe welche den Consolen-Output in eine Log-Datei schreibt und die richtigen XML-Config-Datei aufruft:

O:
CD "O:\CSBackup\"
CSBackup.exe "config - All Users.xml" >> "O:\Backup\csb - All Users\log.txt"

Hierbei liegen die XML-Config-Dateien und die CSBackup.exe im Verzeichnis \CSBackup\ auf einem USB-Laufwerk O:.

Vorteile

Folgende Vorteile hat die Anwendung gegenüber rsync-Backup:

  • Es werden Pfade mit mehr als 260 Zeichen unterstützt.
  • Sie ist schneller.
  • Die Konfiguration ist für Nicht-Programmierer einfacher.

Ideen/ Nachteile

  • Liste auszuschließender Datei-Patterns.
  • Vom Backup auszuschließende Dateien angeben können (Exclude).
  • Automatisches Löschen alter Backups nach Zeit/ Anzahl.
  • Log schreiben.
  • Hash-Werte der Dateien des letzten Backups ablegen und verwenden statt neu zu berechnen.
  • Benutzeroberfläche.
  • Kopiert keine geöffneten Dateien.
  • Kopiert keine NTFS-Spezialitäten (Junctions, Streams, Sparse Files)
  • Vermischen von Verzeichnissen gleichen Namens: http://web.heise.de/ct/faq/hotline/06/12/08.shtml
  • UTF-8 Zeichen in den Dateinamen werden nicht richtig in das Log geschrieben.

Download

Achtung: Voraussetzung ist ein aktuelles .NET Framework. Dieses wir normalerweise über Windows-Online-Update installiert. Es müssen aber nicht nur die "wichigen", sondern "ALLE XP-Updates" eingespielt werden.

Den Link mit der aktuellen Version benutzen und mit rechter Maustase "Speichern unter...".
Als Dateiname "CSBackup.exe" angeben und speichern.

  • V1.0.0.9: Download:3@CSBackup (Danke an Florian P. für die Tests.)
    • Zeitformat des Zielverzeichnisses war im 12h-Format. Ist jetzt auf 24h-Format umgestellt.
    • Anwendung wurde nach dem Backup erst nach drücken von Enter geschlossen (das war noch Debug-Code). Der ist jetzt entfernt.
  • V1.0.0.8: Download:2@CSBackup
    • Format der Config geändert: "backup"-Tag um "source" und "target".
    • Kein Abbruch des Backups mehr bei Kopierfehler (Target FileExists) Aufgrund von durch einen Virenscanner geblockten Dateien, wenn die Quelle als Ausnahme eingetragen ist. Schreiben eines "[ERROR]"-Log-Eintrags.
  • V1.0.0.7: Download:1@CSBackup
Version 27 bearbeitet am {11.12.2011 09:52:20} von smk, Besitzer ist smk und die Berechtigungen sind eingeschränkt auf: Jeden