Backup mit Robocopy

Backup mit Robocopy

Nachdem ich langsam aber sicher an die Kapazitätsgrenzen meiner externen Backupfestplatten gestoßen bin, musste zwangsläufig neuer Speicherplatz her. Nach dem Besuch bei einem örtlichen Technikdealer, mit dem Plan eine USB-Festplatte zu kaufen, verließ ich das Geschäft dann überraschender Weise mit einer Netzwerkplatte*. Da ich ziemlich backupfaul bin, hatte ich spontan die Idee, das Ganze über WLan erledigen zu können. Das würde zwar länger Dauern (seeeeehr viel länger), aber dafür kann ich dann auch mit den anderen Rechnern immer auf meine Daten zugreifen (notfalls sogar übers Internet) und auch deren Backup dort speichern.

Die bei der Festplatte mitgelieferte Backupsoftware, WD SMartWare, hab ich nach ein paar Tagen wieder gelöscht. Zum einen speichert sie die Daten in einem eigenen Format, so dass man ohne WD Smartware nicht an die Daten kommt. Zum anderen ist sie so speicherhungrig, dass sie sich bei mir negativ auf die Systemgeschwindigkeit ausgewirkt hat. Früher habe ich per Drag&Drop stumpf alle Laufwerke auf eine USB-Platte gezogen. Da ich jetzt Speichplatz sparen wollte, und ein Backup über WLan natürlich so schon lange genug dauert, musste eine Lösung her, die 1. nicht viel Systemressoursen frisst und 2. nur die Daten kopiert, die sich verändert haben. Nach ein paar getesteten Programmen und gutem Zureden von Sam (der mir nicht unerhebliche Hilfestellung geleistet hat) habe ich mich für Robocopy entschieden. Robocopy ist ein Kommandozeilentool, das bei Windows mitgeliefert wird und viel zu wenig Beachtung findet. Für einen sinnvollen Einsatz von Robocopy empfiehlt es sich, eine Batchdatei (Stapelverarbeitungsdatei) anzulegen. Sie enthält die Arbeitsanweisungen für Robocopy, also in diesem Fall, was es sichern soll und was es dabei zu beachten hat. Klingt erstmal schlimm, ist aber ganz einfach. Diese Datei erstellt man ganz simpel mit dem Texteditor und speichert sie mit der Endung „.bat“ oder „.cmd“ ab. Hierfür könnt ihr z.B. einfach einen Rechtsklick in die freie Fläche im Explorer machen und dort unter „Neu“ „Textdokument“ ein neues Dokument erstellen. Dabei sollte beachtet werden, dass im Explorer unter „Extras“ bzw. „Organisieren“, „Ordneroptionen“, „Ansicht“, „Erweiterungen bei bekannten Dateitypen ausblenden“ deaktiviert ist, da sonst die Datei nicht als name.bat sondern mit name.bat.txt gespeichert wird und somit nicht ausführbar ist.

In meinem Fall mache ich immer ein Backup meiner Windowsnutzerdaten, die auf Laufwerk C: liegen, und ein komplettes Backup von Laufwerk D:, auf dem alle meine Daten inklusive Fotos und Lightroomkatalog liegen. Gesichert wird auf das externe Laufwerk Z:.

Wie meine Batchdatei aussieht, zeige ich euch im folgenden Absatz. Die Aufgabe der einzelnen Zeilen erkläre ich ebenfalls (Wichtig: Was in einer Zeile steht darf nicht af mehrer Zeilen verteilt werd. Alle Attribute die zu einem Befehl gehören werden hintereiander geschrieben).

if not exist Z:\Backup_Dell goto ende

robocopy c:\Users\ Z:\Backup_Dell\C\Users /mir /r:0 /xa:SH /xj /PURGE /LOG:"Z:\Backup_C.log" /TEE /FFT
robocopy d:\ Z:\Backup_Dell\D /mir /r:0 /xa:SH /xj /XD d:\Fotos\lrcat d:\$RECYCLE.BIN "d:\System Volume Information" /PURGE /LOG:"Z:\Backup_D.log"/TEE /FFT
attrib -s -h Z:\Backup_Dell\C
attrib -s -h Z:\Backup_Dell\D
:ende
cmd.exe /k

Und jetzt die Erklärung:

If not exist Z:\Backup_Dell goto ende
Überprüft, ob auf Laufwerk Z: ein Ordner “Backup_Dell” vorhanden ist (muss vor dem ersten Backup von Hand erstellt warden). Dieser Schritt dient nur zur Sicherheit und verhindert dass, falls eine andere Festpatte als die Backupplatte den Laufwerksbuchstaben Z: erhält, Robocopy einfach die Daten darauf speichert. In diesem Fall bricht das Backup hier ab.

robocopy c:\Users\ Z:\Backup_Dell\C\Users /mir /r:0 /xa:SH /xj /LOG:“Z:\Backup_C.log“ /TEE /FFT
Weist Robocopy an, alle Daten des Verzeichnisses c:\User (ist der Eigene Dateien Ordner im Explorer) auf Laufwerk Z:\Backup_Dell\C\Users zu kopieren.

/mir
sorgt dafür, dass die Daten gespiegelt werden, also nur Daten, die sich seit dem letzten Backup verändert haben, kopiert und nicht mehr vorhandene gelöscht werden.

/r:0 gibt die Anzahl der Wiederholungsversuche an, falls eine Datei nicht gelesen werden kann. Steht hier nix bzw. ein zu hoher Wert versucht Robocopy ewig (Standart: 1.000.000 Mal mit 30Sek. Abstand :-)) die Datei zu kopieren.

/xa:SH Verhindert, dass versteckte und Systemdateien kopiert werden.

/xj unterbindet das Kopieren von sogenannten Abzweigpunkten (z.B. zeigt der Ordner „Eigene Dateien“ in Wirklichkeit auf „Users“).

/PURGE löscht Zieldateien und Verzeichnise die an der Quelle nicht mehr vorhanden sind.

/LOG:“Z:\Backup_Dell\Backup_C.log“
schreibt ein Protokoll in die Datei Backup_C (hilft bei der Fehlersuche).

/TEE
Schreibt das Protokoll in die Datei Backup_C (siehe /LOG) und zeigt es zugleich auf dem Bildschrim an.

/FFT
Verhindert Probleme mit unterschiedlichen Zeitstempeln. Kann passieren, wenn die Festplatte NTFS als Filesystem verwendet und das Backuplaufwerk FAT.

robocopy d:\ Z:\Backup_Dell\D /mir /r:0 /xa:SH /xj /XD d:\Fotos\lrcat d:\$RECYCLE.BIN „d:\System Volume Information“ /LOG:“Z:\Backup_D.log“ /TEE /FFT
Macht im Wesendlichen das gleiche wie die vorhergehende Zeile, allerdings mit einer Ausnahme die im nächsten Absatz erklärt wird.

/XD
Schließt Verzeichnisse vom Backup aus. Es macht für mich zum Beispiel keinen Sinn, den Inhalt des Papierkorbs zu sichern (d:\ $Recycle.bin). Außerdem sicher ich das Verzeichnis mit dem Lightroomkatalog nicht mit. In diesem befinden sich leider auch die gesamten von Lightroom angelegten Vorschaubilder, welche eine Menge Platz benötigen. Da der Katalog natürlich gesichert werden soll, habe ich in Lightroom in den Katalogeinstellungen als Backupverzeichnis /Backup_lrcat eingetragen. Lightroom schreibt also, je nach in den Katalogeinstellungen angegebenen Rhythmus, ein Backup des Kataloges in /Backup_lrcat, welches wiederum von Robocopy gesichert wird. Verzeichnisnamen die Leerstellen enthalten müssen unbedingt in „“ gesetzt werden.

attrib -s -h Z:\Backup_Dell\C und attrib -s -h Z:\Backup_Dell\D
Sorgen dafür, dass die beiden Backupverzeichnisse auch wirklich sichtbar sind.

:ende
Ist die Sprungmarke für die erste Zeile, falls die falsche Festplatte zugeordnet wurde.

cmd.exe /k
Hält das Fenster der Eingabeaufforderung nach Beendigung des Backups offen. Ist nicht notwendig, aber so sieht man die Fertigmeldung von Robocopy und sieht sofort, ob es Probleme gab.

Das Backup wird durch Doppelklick auf die von euch erstellte Batchdatei gestartet.

Die erste Ausführung des Backups wird je nach Datenmenge und Übertragungsart (USB/Netzwerk) relativ lange dauern. Die Folgeläufe sind ,je nachdem wie viele Daten geändert oder neu sind, wesentlich kürzer. Bei mir hat der erste Lauf mit 400GB über Netzwerk 36h gedauert, der zweite „nur“ noch 8h. Über USB ist es wesentlich angenehmer. Dort benötigte der erste Lauf 1h und der zweite 11 Minuten.

Jetzt viel Spaß beim Backupbasteln. Wenn Fragen sind, immer her damit. Und wie sehen eure Backuplösungen eigentlich aus?

“So long, and thanks for all the fish…”

* Affiliate-Link

4 Comments

  1. Aggl
    01/12/2011 at 19:57 — Antworten

    Sehr schöner Post. Ich teste Robocopy auch gerade, verzichte allerdings auf die Attrib-Zeilen. Es gibt da den Schalter: /A- mit dem kann man das im selben Zuge erledigen.

  2. Hendrik
    21/12/2011 at 22:53 — Antworten

    Ich nutze auch Robocopy fürs Backup. Habe mir auf meinem Hauptrechner nen Task eingerichtet, der alle 2 Tage ausgeführt wird.
    Der Rechner auf den das Backup erfolgen soll wird zuerst mit Wake-on-Lan aufgeweckt und anschließend werden die Daten rüberkopiert. Nach einer gewissen Zeit der Inaktivität legt sich der Rechner dann wieder schlafen.

    Alles voll automatisiert. Bin sehr zufrieden :-)

    P.s.: Robocopy hat deshalb eine so geringe Beachtung, weil es ein Admin-Tool ist. Der Otto-Normal-PC-Nutzer wird damit nicht klar kommen. Bei IT´ler ist es aber ein gern verwendetes Tool.

  3. Sandra
    06/01/2012 at 16:57 — Antworten

    Ich habe jetzt auch mal umgeschwenkt von Acronis auf Robocopy….
    Gibts auch nen Schalter, womit nicht mehr bestehende Daten auch auf der Backup Platte gelöscht werden?

    • luther2k
      06/01/2012 at 16:58 — Antworten

      /PURGE Löscht Zieldateien/-verzeichnisse, die in der Quelle nicht mehr vorhanden sind.

Schreibe einen Kommentar