Backup mit Robocopy auf FreeNAS

Veröffentlicht in: Netzkultur, IT & Zeugs | 1

Ich habe bereits mein FreeNAS 8 Projekt vorgestellt, nun möchte ich ein kleines Script für Windows vorstellen um die Datensicherung zu vereinfachen und ggf. zu automatisieren. Es gibt bereits unzählige Lösungen für dieses Problem. Leider umfassen die meisten von diesen die den Kauf und Installation zusätzlicher Software. Seit Windows 7 bringt Microsoft bereits alles von Haus aus mit (sonst musste man es mit dem Windows Rescue Kit nachrüsten). Alles was man benötigt ist eine FreeNAS mit funktionalem CIFS / Samba oder sonstigem Netzlaufwerk und einen Texteditor. In dem Texteditor der Wahl (z.B. Notepad++) schreiben wir eine Batch-Datei um die Sicherung zu automatisieren.

Eine Batch-Datei ist im Grunde eine Textdatei die statt txt die Dateiendung bat hat. Diese Dateien interpretiert Windows wie eine vorgefertigte Abfolge von Befehlen, so als ob man diese nacheinander händisch in die Konsole eingibt. Für dieses kleine Script benutzte ich Robocopy, was ein Akronym für Robust File Copy ist und seit langer Zeit ein solides Kommandozeilen Kopierprogramm unter Windows ist. Der Einfachheit halber werde ich nur auf die hier verwendeten Parameter eingehen, für eine ausführliche Liste und Erklärung aller Parameter, gebt „robocopy /?“ in die Kommandozeile ein.

Meine Batch-Datei ist eine Abfolge des gleichen Befehls mit wechselnden Verzeichnispfaden. Hier ein Beispiel:

%SYSTEMROOT%\System32\Robocopy.exe „D:\Dir1“ „\\freenas\Backup\Dir1“ /MIR /MT:2 /R:10

Der erste Teil „%SYSTEMROOT%\System32\Robocopy.exe“ ist der Aufruf von Robocopy. Ich habe mich dazu entschieden Robocopy nicht mit dem absoluten Pfad auf zu rufen, sondern die Umgebungsvariable zu benutzen. Dies macht den ersten Teil des Script universell auf jedem Windows System einsetzbar, egal auf welcher Partition Windows installiert ist. Der Rest muss natürlich trotzdem angepasst werden. Sonst werden auf dem Zielverzeichnis ungewollt Daten überschrieben.

Nach dem Aufruf von Robocopy kommt das Quellverzeichnis, Zielverzeichnis und schließlich die Parameter. Ich empfehle die Verzeichnisangaben immer in Anführungszeichen zu setzten, um Probleme mit Leerzeichen in Ordner- und Dateinamen zu umgehen. Das Quellverzeichnis, ist der Ordner auf dem Rechner den wir weg sichern möchten. Das Zielverzeichnis, ist die Netzwerkfreigabe von FreeNAS.

Zu letzt kommen noch die drei Parameter die ich verwende:

  • /MIR steht für Mirror, zu deutsch Spiegeln, und ist eine Kombination aus zwei anderen Parametern. /E um alle Unterordner (auch leere) zu kopieren und /purge um Dateien die im Quellverzeichnis nicht mehr vorhanden sind auch im Zielverzeichnis zu löschen.
  • /MT:2 sorgt dafür das gleichzeitig zwei Dateien kopiert werden. Das beschleunigt den Vorgang bei vielen kleinen Dateien deutlich.
  • /R:10 steht für die Anzahl an Wiederholungen bei Fehlern.

Auf diese Weise kann man sich eine Liste von Verzeichnissen erstellen die bei Ausführung der Batch-Datei gesichert werden. Robocopy arbeitet inkrementell, sprich es wird jede Datei Verglichen und nur die Abweichungen übertragen. Das kostet zwar etwas mehr Rechenzeit, entlastet aber das Netzwerk. Wenn man die Aufgabenplanung von Windows mit Einbezieht, kann man die Ausführung des Scripts sogar Automatisieren (vorausgesetzt beide Rechner sind verfügbar).

Diese Robocopy-Batch-Sicherung hat natürlich einige Vor- und Nachteile. Der größte Vorteil ist, das jeder Windows 7 Benutzter bereits über alle verfügt was er braucht. Der größte Nachteil dieser Variante ist, das man schon wissen sollte was man tut. Das ist kein tolles Programm, bei dem man einfach ein großes buntes Icon drückt und alles ist erledigt. Auch das es keine Versionierung bietet ist nicht immer von Vorteil.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.