Nach wie vor tun sich viele Anwender schwer, regelmäßig ihre Datenbestände zu sichern. Mit Restic und dessen grafischem Frontend Restatic kommen auch Neulinge zurecht.
Das Erstellen von Datensicherungen für den Notfall gehört seit jeher zu den unbeliebtesten Aufgaben am heimischen PC. Die verfügbaren Anwendungen zielen meist auf den Unternehmenseinsatz ab und fallen daher für gelegentliche Backups zu wuchtig oder zu kompliziert in der Bedienung aus. Das kleine Kommandozeilenprogramm Restic [1] beweist, dass es auch anders geht, und taugt obendrein für verschiedenste Anwendungsszenarien.
Viele Administratoren fühlen sich auf der Kommandozeile wohler als auf der häufig überladenen grafischen Bedienoberfläche. Um Restic auch für Heimanwender genießbar zu machen, die das Programm ohne das Studium langer Manpages einsetzen möchten, beschränkt sich die Software in ihrem Befehlssatz auf das Wesentliche. Daneben gibt es eine (derzeit noch in der Entwicklung befindliche) grafische Oberfläche, die Sie gesondert installieren müssen.
Restic kann Daten sowohl auf dem lokalen PC ablegen als auch auf einem Rechner im heimischen Netz oder der Cloud. Es verschlüsselt alle Daten unabhängig vom Speicherort mit AES256, sodass Unbefugte sie nicht einsehen können. Zudem arbeitet die Software durch den Verzicht auf jeglichen grafischen Overhead sehr schnell, was sie auch für Gelegenheitsanwender interessant macht.
Sie erhalten Restic entweder von der Webseite des Projekts oder aus den Software-Archiven nahezu aller gängigen Distributionen. Da die Anwendung in Go geschrieben ist, benötigen Sie zur Installation einen entsprechenden Compiler, den Sie unter Debian/Ubuntu und deren Derivaten im Paket golang-go finden. Nach der Installation rufen Sie die Software mit dem Befehl restic am Prompt auf und erhalten einen Überblick über die vorhandenen Parameter.
Backup
Ein lokales Backup erfordert bei Restic lediglich zwei Arbeitsschritte: Zunächst legen Sie ein Repository für die zu archivierenden Datenbestände an (Listing 1, erste Zeile), anschließend sichern Sie die Daten in das neu angelegte Archiv (zweite Zeile).
Beim Anlegen des Archivs können Sie ein Passwort für das Repository angeben, das Sie durch eine wiederholte Eingabe verifizieren müssen. Bei der Sicherung fragt Restic gegebenenfalls das Passwort für das neu angelegte Archiv ab und beginnt dann damit, die angegebenen Datenbestände verschlüsselt im Repository abzulegen. Währenddessen zeigt die Software den Fortschritt des Speichervorgangs prozentual und in absoluten Zahlen an (Abbildung 1).
Um das Backup auf einem entfernten Server abzulegen, nutzen Sie das SFTP-Protokoll. Anstelle des lokalen Backup-Verzeichnisses geben Sie dabei in der Befehlszeile den Server inklusive des darauf anzulegenden Zielpfads an. Die weiteren Bedienschritte inklusive der Passworteingabe geschehen analog zu denen auf einem lokalen System.
Für jedes neue Backup legt Restic innerhalb des Archivpfads unter snapshots/ eine neue Sicherungsdatei an. Um sich deren Inhalt anzeigen zu lassen, nutzen Sie den Befehl aus der dritten Zeile von Listing 1. Die entsprechende Tabelle zeigt dabei neben der ID-Nummer des Backups auch den Host an. Dabei führt das Werkzeug den Ursprungspfad des Backups in voller Länge auf, sodass Sie sehr schnell ersehen, um welche Datensicherung es sich handelt. Gibt es in einem Archiv mit namensgleicher Verzeichnishierarchie Daten, die von unterschiedlichen Host-Computern stammen, führt Restic diese entsprechend geordnet auf, wobei es jedoch in allen Fällen keine einzelnen Dateien anzeigt.
Listing 1
$ restic -r /Pfad/Archiv init<C> $ restic -r /Pfad/Archiv backup /Pfad/Dateien $ restic -r /Pfad/Archiv snapshots $ restic -r /Pfad/Archiv mount /TemporäresVerzeichnis
Feinheiten
Um sich in einem Repository einzelne Dateien und Verzeichnisstrukturen anzusehen, müssen Sie es einhängen. Diese Funktion ermöglicht es auch, bei Bedarf lediglich einzelne Dateien aus einem Backup herauszukopieren, statt alle Daten wiederherzustellen. Um ein Backup zu mounten, nutzen Sie als Ziel am besten ein temporäres Verzeichnis, das einen beliebigen Namen tragen darf.
Besteht das Verzeichnis nicht, so fragt Restic bei Aufruf des Einhängebefehls (Listing 1, Zeile 4) nach, ob es das Verzeichnis anlegen soll, und mountet nach einer entsprechenden Bestätigung das Zielverzeichnis ein. Allerdings hängt es die temporären Verzeichnisse nur lesbar ein, sodass Sie nur bedingt mit den darin enthaltenen Dateien arbeiten können. Im Terminal bleibt zudem der Befehl zum Mounten des Backups aktiv, sodass alle Tätigkeiten an den Dateien in einem gesonderten Reiter oder Fenster erfolgen müssen. Nach dem Ende der Arbeiten müssen Sie das temporäre Verzeichnis zudem aushängen, erst dann wird auch Restic geschlossen.
Mithilfe weiterer Parameter können Sie in den gesicherten Datenbeständen verschiedene zusätzliche Aufgaben ausführen: So entfernen Sie etwa einzelne Backups aus einem Repository, indem Sie den Schalter forget nutzen. Das trägt insbesondere bei zeitgesteuerten Backup-Läufen dazu bei, das Archiv durch das Entfernen obsoleter einzelner Sicherungen übersichtlich zu halten.
Da Restic stets Vollsicherungen anlegt, lassen sich die Unterschiede zwischen einzelnen Backups nicht auf den ersten Blick erkennen. Hier hilft der Schalter diff weiter, der Unterschiede in den Datenbeständen zwischen zwei Sicherungen anzeigt. Mit check prüfen Sie darüber hinaus die Datenintegrität.
Die genaue Syntax für den Einsatz einzelner Unterbefehle fördert das Kommando restic Befehl --help am Prompt zutage: Die Software zeigt dann ausführliche Beschreibungen für das Anwenden des fraglichen Schalters an.
Restore
Um ein Backup im Bedarfsfall wiederherzustellen, benötigen Sie bei mehreren vorhandenen Sicherungen die jeweilige ID-Nummer. Dazu lassen Sie sich zunächst die vorhandenen Sicherungen anzeigen (Listing 1, Zeile 3). Aus den dabei ebenfalls angezeigten vollständigen Dateipfaden ersehen Sie, welches Backup welche ID-Nummer trägt. Anschließend geben Sie zum Rücksichern eines Backups den Befehl aus Listing 2 an. Restic spielt nun das spezifizierte Backup in den angegebenen Zielpfad zurück, wobei es das entsprechende Unterverzeichnis, sollte es noch nicht vorhanden sein, automatisch und ohne Rückfrage anlegt (Abbildung 2).
Listing 2
$ restic -r /Pfad/Archiv restore -t /Pfad/zum/Rücksichern ID-Nummer
Skripte
Da Restic auch mit Variablen umgehen kann, können Sie das Werkzeug außerdem zum regelmäßigen Sichern von Datenbeständen mithilfe von Skripten nutzen. Diese lassen Sie anschließend als Cronjob zeitgesteuert ausführen. Dabei setzen Sie idealerweise für die Passworteingabe und den Ablagepfad jeweils eine Umgebungsvariable.
Dass die Software grundsätzlich auf alle im System vorhandenen Datenträger und Dateisysteme zugreifen kann, eröffnet die Möglichkeit, Daten beispielsweise auf ein NAS-System auszulagern oder per SFTP zu einem Server zu transferieren. Bei langsamen Massenspeichern beziehungsweise geringeren Bandbreiten fällt jedoch naturgemäß die Sicherungsgeschwindigkeit deutlich niedriger aus als beim Backup im lokalen Dateisystem.
Grafisch
Für Restic befindet sich seit einiger Zeit auch eine grafische Benutzeroberfläche in der Entwicklung, die den Namen Restatic trägt [2]. Sie finden die in Python programmierte Applikation auf Github. Als Grundlage benötigt das Frontend Python ab Version 3.6. Zahlreiche Distributionen mit Langzeitsupport bringen noch ältere Python-Versionen mit, die Sie vorab aktualisieren müssen, damit sich Restatic überhaupt installieren lässt.
Nach dem Einrichten rufen Sie die Software am Prompt durch Eingabe von restatic auf. Im sich daraufhin öffnenden Programmfenster erhalten Sie mithilfe einer übersichtlichen Reiterstruktur Zugang zu den einzelnen Funktionen (Abbildung 3). Sie gehen dabei grundsätzlich in derselben Reihenfolge vor wie beim Kommandozeilenprogramm. Zusätzlich können Sie jedoch zu Beginn über die Schaltfläche Current Profile: auch Profile definieren, was besonders bei größeren Infrastrukturen mit heterogenen Datenbeständen nützlich ist.
Anschließend benennen Sie ein Repository für die Sicherung. Dazu klicken Sie im Reiter Repository auf das gleichnamige Auswahlfeld und wählen eine der Optionen. Zum Einbinden bereits vorhandener Repositories öffnet sich ein gesonderter Dialog, über den Sie die Verbindung zum fraglichen Archiv herstellen. Restatic erlaubt dabei auch Verbindungen zu entfernten Servern.
In gleicher Weise geben Sie im Auswahlfeld SSH Key: kontextabhängig an, ob ein bestehender Schlüssel verwendet oder ein neuer generiert werden soll. Anschließend wechseln Sie in den Reiter Sources, in dem Sie die zu sichernden Verzeichnisse angeben. Dazu fügen Sie über den Schalter Add Folder einzelne Ordner einer Listenansicht hinzu. In den beiden unteren Fenstersegmenten können Sie dabei Ausschlusskriterien für nicht zu sichernde Ordner und Dateien festlegen.
Nach einem Klick auf Start Backup unten links nimmt Restatic das Backup vor und zeigt dabei einen Fortschrittsbalken an. Anschließend sollten Sie im Reiter Archives den Schalter Refresh anklicken, um die im Repository befindlichen Sicherungen zu sehen. Über die Schaltflächen Extract, Check, Mount und Prune können Sie nun mit den Sicherungen arbeiten. Zusätzlich legen Sie in diesem Dialog bei mehreren Sicherungsdateien fest, wie viele alte Archive Sie behalten wollen.
Um das Backup künftig automatisch ausführen zu lassen, nutzen Sie den Reiter Schedule. Dort legen Sie bequem per Mausklick fest, wie häufig Restatic Daten aus den zuvor angegebenen Quellordnern ins aktive Repository sichern soll. Sie müssen für automatische Backups also weder ein Shell-Skript schreiben noch einen dazugehörigen Cron-Job anlegen. Nach einem Klick auf Apply übernimmt Restatic die Daten und aktiviert die automatischen Backup-Läufe (Abbildung 4).

Abbildung 4: Auch das zeitgesteuerte automatische Sichern von Daten gelingt mit Restatic problemlos.
Fazit
Restic nimmt Anwendern Vorbehalte gegenüber der Kommandozeile, indem es konsequent an einer einfachen Syntax für die einzelnen Funktionen festhält. Das Backup-Werkzeug gefällt dabei durch schnelle Arbeitsweise und vor allem die voreingestellt aktive Verschlüsselung, mit der auch Sicherungen in die Cloud nichts mehr im Weg steht. Durch automatische, zeitgesteuerte Backups und die Option, lokale SFTP-Server als Speichermedium zu nutzen, eignet sich die Software zusätzlich für größere Infrastrukturen. Über die grafische Oberfläche Restatic lassen sich zudem Sicherungen per Mausklick vornehmen.
Infos
-
Restic: https://restic.net
-
Restatic: https://github.com/Mebus/restatic








