Dieser Beitrag ist älter als drei Jahre. Es könnte also sein, dass auch der Inhalt - zumindest in Teilen - bereits veraltet ist.

restic – ein Stern am Backup Himmel

Habe mich länger nicht zu Wort gemeldet, wahrscheinlich weil es zuletzt sehr viel „Business as usual“ bei mir gab und wenig richtig Neues, Inspirierendes.

Nun durfte ich restic entdecken. Ein Backup Tool, bei dem derzeit meine Begeisterung kaum ein Ende hat.

Was macht restic für mich so besonders?

  • restic besteht aus einer einzigen Datei, es gibt binaries für beinahe alle Plattformen. Mittels „–self-update“ besitzt es sogar einen eigenen Update Mechanismus.
  • restic erstellt verschlüsselte, inkrementielle Backups, inklusive Deduplizierung, und es ist enorm schnell dabei.
  • restic beherrscht als Backup Ziel zum Beispiel (natürlich neben lokal eingebundenen) sftp sowie S3 kompatible Storages (bzw. Buckets). Via rclone lassen sich noch viele weitere Ziele verwenden.
  • Gute Dokumentation und ein sehr informatives und hilfsbereites Forum.
  • Es kann mittels Pipes (stdin/stdout) sichern und wiederherstellen. Zum Beispiel um mal so eben das sql File aus der Sicherung von gesten an mysql zu pipen.

Quickstart mit restic

Nachfolgendes versteht sich nicht als fixfertiges Tutorial. Es soll neugierig machen und ein bisschen eine Einführung bieten. Ich empfehle die Doku zu lesen, nach ein paar Minuten lassen sich selbst komplexe Backup Strategien sehr schnell umsetzen.

Das restic Binary kann man hier herunterladen. restic ist natürlich auch in vielen Paketverwaltungen diverser Distributionen enthalten. Da es aber so herrlich einfach geht, hab ich es bisher immer herungergeladen, entpackt und nach /usr/local/bin/restic kopiert.

restic speichert Backups in einem Repository. Dieses befindet sich zum Beispiel auf einer USB Platte, einem Cloud Anbieter, einem Server mit sftp Zugriff etc.
Es muss zuerst initialisiert werden mittels

restic -r /repo/ziel init

Anschließend wählt mein ein Kennwort für das Repo. Danach ist die Initialisierung abgeschlossen. Die Schreibweise für andere Backupziele ist hier sehr gut erklärt. Nun kann man ein Backup erstellen zum Beispiel mit

restic -r /repo/ziel backup /home

Damit erzeugen wir den ersten Snapshot. Alle abgelegten Snapshots eines Repos lassen sich mit

restic -r /repo/ziel snapshots

auflisten. Ein restore ist mehr als einfach, ein Beispiel

restic -r /repo/ziel restore latest --target /tmp/restore-work

Bei allem was es tut ist restic so unglaublich schnell, dass ich am Anfang Zweifel hatte, ob das alles korrekt funktioniert. Daher habe ich recht bald ein paar Test Restores, teilweise von kompletten Systemen, gemacht. Es hat alles bestens geklappt.

Als Storage für restic Backups kann ich wasabi empfehlen. Es ist 100% kompatibel mit Amazon S3 – dabei aber wesentlich günstiger.