Website-Suche

Vereinfachen Sie Restic-Backups mit Backrest: Eine Schritt-für-Schritt-Anleitung


In einem früheren Artikel haben wir gelernt, wie man mit Restic unter Linux sichere und effiziente Backups erstellt. Restic funktioniert auf mehreren Plattformen, kommt aber ohne GUI aus. In diesem Artikel erfahren Sie, wie Sie Backrest installieren und verwenden, eine kostenlose und benutzerfreundliche webbasierte Open-Source-Oberfläche für Restic.

In diesem Tutorial lernen Sie:

  • So installieren Sie Backrest unter Linux
  • So konfigurieren Sie die Rückenlehne
  • So verwenden Sie Backrest zum Erstellen und Verwalten von Restic-Backups

KategorieAnforderungen, Konventionen oder verwendete Softwareversion
SystemVerteilungs-agnostisch
SoftwareRückenlehne
AndereRoot-Rechte bei einer systemweiten Installation
Konventionen# – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder mit dem sudo-Befehl
$– erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden

Rückenlehne einbauen

Wie Restic selbst ist auch Backrest eine kostenlose Open-Source-Software (der Quellcode wird auf GitHub gehostet). Es ist in Go geschrieben und unter der GPLv3-Lizenz veröffentlicht. Der einfachste Weg, Backrest zu installieren, besteht darin, die vorkompilierte Binärdatei für unser bevorzugtes Betriebssystem und unsere bevorzugte Architektur von der Repository-Releases-Seite herunterzuladen.

Zum Zeitpunkt des Schreibens ist die neueste verfügbare Version von Backrest 1.7.1. Wenn Sie diesen Artikel lesen, möchten Sie wahrscheinlich die Linux-Version installieren, die für die Architekturen arm64, armv6 und x86_64 verfügbar ist. Für diesen Artikel werden wir letzteres verwenden. Die Binärdatei für die Rückenlehne befindet sich in einem Tarball, den wir mit einem einzigen Befehl herunterladen und extrahieren können:

curl -L  https://github.com/garethgeorge/backrest/releases/download/v1.7.1/backrest_Linux_x86_64.tar.gz | tar -xz

Nachdem wir den obigen Befehl gestartet haben, sollten wir den Inhalt des Backrest-Tarballs in unserem aktuellen Arbeitsverzeichnis finden:

├── backrest
├── CHANGELOG.md
├── install.sh
├── LICENSE
├── README.md
└── uninstall.sh

Die Rückenlehnendatei ist die vorkompilierte Binärdatei. Es enthält eine eingebettete Version von Restic, so dass wir es nicht separat installieren müssen (obwohl wir den Pfad einer vorhandenen Restic-Binärdatei als Argument an die Option --restic-cmd übergeben können). Wir können die Backrest-Binärdatei direkt ausführen, oder wir können das install.sh-Skript verwenden, um eine systemweite Installation durchzuführen. Das Skript kopiert die Binärdatei in das Verzeichnis /usr/local/bin und erstellt einen systemd-Dienst unter /etc/systemd/system/backrest.service; Anschließend wird der Dienst gestartet und aktiviert, so dass er beim Booten automatisch gestartet wird.

Rückenlehne konfigurieren

Wenn wir zum ersten Mal auf die Backrest-Weboberfläche zugreifen, werden wir bei http://localhost:9898 aufgefordert, eine eindeutige Instanz-ID einzugeben und zu wählen, ob die Authentifizierung deaktiviert oder ein Benutzername und ein Passwort hinzugefügt werden sollen, um den Zugriff auf die Schnittstelle selbst einzuschränken. Wir können auf die Schaltfläche "Senden" klicken, um unsere Auswahl zu bestätigen:

Erstellen eines Repositorys

Nach der Erstkonfiguration können wir mit der Erstellung eines Restic-Repositorys (oder der Verwendung eines bereits vorhandenen) und eines Backup-Plans fortfahren. Um ein Repository zu erstellen, klicken wir auf den Link "Repo hinzufügen" im linken vertikalen Menü und geben mindestens Folgendes an: den Namen des Repositorys, seine URI und das Verschlüsselungspasswort:

Wie Sie im obigen Screenshot sehen können, haben wir die Möglichkeit, einige Umgebungsvariablen zu definieren, unter denen, die von Restic unterstützt werden (z. B. kann die Variable RESTIC_COMPRESSION verwendet werden, um den Komprimierungsmodus zu spezifizieren, den Restic verwenden soll.). Wir können auch zusätzliche Flags angeben, die an die Restic-Befehlszeile übergeben werden sollen, wenn wir ein Backup auf dieses Repository durchführen, eine Richtlinie für das Pruning konfigurieren und eine für die Überprüfung der Integrität des Repositorys.

Schließlich können wir einen Hook auswählen: Hooks sind spezifische Aktionen, die unter bestimmten Bedingungen ausgeführt werden sollen. Wir können beispielsweise einen Shell-Befehl ausführen oder einen Endpunkt wie healthchecks.io kontaktieren, um unsere Backups und ihren Status zu überwachen. Um unser Repository erneut zu speichern, klicken wir auf die Schaltfläche "Senden".

Erstellen eines Backup-Plans

Wir können nun mit der Erstellung eines Backup-Plans fortfahren, indem wir auf den Link "Plan hinzufügen" im vertikalen Menü der Benutzeroberfläche klicken. Um einen Plan zu erstellen, müssen wir lediglich einen aussagekräftigen Namen dafür angeben (z. B. local-backup), ein Ziel-Repository aus dem Dropdown-Menü auswählen und die Pfade der Dateien eingeben, die wir in das Backup aufnehmen möchten:

Über die Schnittstelle können wir auch eine Liste von Ausschlussmustern bereitstellen, bei denen zwischen Groß- und Kleinschreibung unterschieden wird. Wir können einen Backup-Zeitplan (standardmäßig wird zu Beginn jeder Stunde ein Backup durchgeführt) und eine Aufbewahrungsrichtlinie basierend auf der Anzahl der vorhandenen Backups oder auf einem Zeitraum definieren. Eine Aufbewahrungsrichtlinie ist nützlich, um Speicherplatz im Ziel-Repository freizugeben, indem alte Sicherungen entfernt werden. Was die Repositories betrifft, so können wir einen oder mehrere Hooks mit einem Backup-Plan verknüpfen.

Sobald unser erster Backup-Plan definiert ist, können wir auf "Senden" klicken, um die Konfiguration zu speichern. Der Name des Backup-Plans wird im vertikalen Menü der Backrest WebUI-Oberfläche angezeigt. Sobald wir darauf klicken, können wir das nächste Datum überprüfen, an dem das Backup ausgeführt wird (gemäß dem von uns definierten Zeitplan), und sofort ein Backup oder einen Restic-Befehl ausführen, indem wir auf die Schaltflächen "Jetzt sichern" bzw. "Repo entsperren" klicken.

Sobald eine Sicherung abgeschlossen ist, wird sie in der Liste angezeigt, die mit einem grünen Symbol verknüpft ist, wenn sie erfolgreich ausgeführt wurde:

Mit einem Klick auf den Backup-Eintrag können wir auf Details wie die Snapshot-ID und die Anzahl der hinzugefügten Dateien und Bytes zugreifen. Wir können auch den Inhalt des Snapshots durchsuchen und einzelne Dateien herunterladen:

In ähnlicher Weise können wir durch Klicken auf den Repository-Eintrag, der sich auf ein Repository bezieht, sofortige Aktionen wie Bereinigung und Überprüfung durchführen.

Konfigurationsdatei für die Rückenlehne

Backrest erstellt automatisch eine Konfigurationsdatei, die die Entscheidungen widerspiegelt, die wir in der WebUI treffen. Wir können es verwenden, um unser Setup auf neue Installationen einfach zu replizieren. Die Konfigurationsdatei liegt im JSON-Format vor und wird standardmäßig im Verzeichnis ~/.config/backrest des Benutzers erstellt, als dem wir die Backrest-Binärdatei starten. Wir können jedoch den Pfad zu einer alternativen Konfiguration als Argument an die Option --config-file übergeben. Hier ist der Inhalt der Konfigurationsdatei, die unserem aktuellen Setup entspricht:

{
  "modno": 2,
  "version": 4,
  "instance": "my-backrest",
  "repos": [
    {
      "id": "repo1",
      "uri": "/mnt/restic-repo",
      "guid": "ab83d9257d5ae451173ea4b6a305645aea26e69d3046f98eef7e0cc87e774005",
      "password": "supersecretpassword",
      "prunePolicy": {
        "schedule": {
          "cron": "0 0 1 * *",
          "clock": "CLOCK_LAST_RUN_TIME"
        },
        "maxUnusedPercent": 10
      },
      "checkPolicy": {
        "schedule": {
          "cron": "0 0 1 * *",
          "clock": "CLOCK_LAST_RUN_TIME"
        },
        "readDataSubsetPercent": 0
      },
      "commandPrefix": {}
    }
  ],
  "plans": [
    {
      "id": "local-backup",
      "repo": "repo1",
      "paths": [
        "/etc",
        "/mnt/data"
      ],
      "schedule": {
        "cron": "0 * * * *",
        "clock": "CLOCK_LOCAL"
      },
      "retention": {
        "policyTimeBucketed": {
          "hourly": 24,
          "daily": 30,
          "monthly": 12
        }
      }
    }
  ],
  "auth": {
    "disabled": true
  }
}

Schlüsse

In diesem Tutorial haben wir gelernt, wie man Backrest herunterlädt, installiert und konfiguriert, einen Wrapper für Restic, ein hervorragendes Multi-Plattform-Tool, mit dem wir verschlüsselte und effiziente Backups erstellen können. Backrest vereinfacht die Verwendung von Restic und bietet eine benutzerfreundliche WebUI, mit der wir Repositories und Backups erstellen und vorhandene Backups verwalten können.

Verwandte Artikel: