Mit dem Open Source-Tools restic lassen sich Datensicherungen zu verschiedenen Zielen erstellen. Neben diversen Cloud-Anbietern besteht die Möglichkeit eine lokale Datensicherung einzurichten.

restic ist für verschiedene Betriebssysteme verfügbar, nachfolgend geht es um die Nutzung unter Windows.

Im Gegensatz zu anderen Tools ist die Nutzung der Schattenkopien (VSS) direkt und ohne Umwege möglich, so lassen sich bequem Dateien sichern, die sich gerade im Zugriff befinden.

Für die regelmäßige Ausführung bietet sich die Nutzung in Form eines Skriptes an, an dieser Stelle kommt einem zu Gute, das restic umfangreich mittels Variablen konfiguriert werden kann, dadurch werden die einzelnen Befehle sehr viel überschaubarer und das Skript insgesamt sehr einfach zu lesen. Anbei ein simples Beispiel:

@echo off

rem Konfiguration

 set SOURCE=<Quelle>
 set RESTIC_REPOSITORY=<Ziel>
 set RESTIC_PASSWORD=<PasswortFuerDasRepository>

rem Repository Init

REM restic init

rem Backup

 restic backup "%SOURCE%" --use-fs-snapshot

rem Clean-up

 restic forget --keep-last 10 --prune

Die einzige “Nicht-restic”-Variable ist “SOURCE”, um die Quelle, gemeint ist die zu sichernden Daten, zu definieren.

restic nutzt Repositories als Backup-Ziel, dieses muss vor der ersten Ausführung einer Datensicherung einmalig mit

restic init

eingerichtet werden.

Wie man im Skript erkennen kann, ist das Repository auf 10 Versionen festgelegt, damit dieses beim Speicherplatzbedarf nicht unendlich anwächst ist ein regelmäßiges Aufräumen wichtig. Der Befehl

restic forget

sorgt zunächst, das Snapshot die älter als die 10 Versionen sind nicht mehr in der Liste erscheinen, mit dem Parameter

--prune

wiederum wird der eigentliche Speicherplatz freigegeben.

Dank der Deduplizierung reduziert sich der benötigte Speicherplatz erheblich, einziger Wehrmutstropfen ist eine fehlende Komprimierung. Man könnte zwar die zu sichernden Daten vor der Ausführung von restic packen, aber nicht jedes Archiv-Format ist für die Deduplizierung geeignet!

Anbei ein Vergleich des benötigten Speicherplatzes zu einer lokalen Datensicherung, die ursprünglich mit Robocopy ausgeführt wurde:

  • Quelle: 2,41 GB
  • Robocopy-Ziel (10 Versionen): 24,11 GB
  • restic-Repository (10 Versionen): 2,00 GB

Restore

Eine Wiederherstellung ist ebenso einfach, wie die Datensicherung:

restic restore <Snapshot-ID> --target <Ziel>

Die Nummer des Snapshots kann man mit

restic snapshots

ermitteln. Möchte man einfach nur den Aktuellsten nutzen, gibt man einfach “latest” als ID an.

Quelle

Restic Documentation