TL;DR — Kurzzusammenfassung

Borgmatic automatisiert verschlüsselte BorgBackup-Sicherungen unter Linux. YAML konfigurieren, systemd-Timer einrichten und die 3-2-1-Backup-Strategie umsetzen.

Borgmatic verwandelt die leistungsstarke, aber ausführliche CLI von BorgBackup in eine deklarative YAML-Konfiguration — eine einzige Datei verwaltet verschlüsselte, deduplizierte und komprimierte Backups mit Aufbewahrungsrichtlinien, Konsistenzprüfungen, Datenbank-Hooks und Überwachungsbenachrichtigungen.

Voraussetzungen

  • Linux-Server (Ubuntu 20.04+, Debian 11+, RHEL 8+ oder ähnlich)
  • Python 3.8+ (für pip install) oder Zugang zu apt/dnf
  • SSH-Zugang zu einem entfernten Backup-Ziel
  • Root- oder sudo-Zugang

BorgBackup-Grundlagen

  • Deduplizierung — Borg teilt Dateien in variable Blöcke auf und speichert jeden eindeutigen Block nur einmal.
  • Verschlüsselung — Der repokey-blake2-Modus speichert einen mit AES-256-CTR verschlüsselten Schlüssel, der durch Ihre Passphrase geschützt ist.
  • Komprimierunglz4 (schnell), zstd (ausgewogen) oder lzma (maximal). zstd,3 ist der moderne Standard.
  • Nur-Anhängen-Modus — Repositories können als append-only konfiguriert werden, sodass selbst ein kompromittierter Client keine vorhandenen Archive löschen kann.

Schritt 1: Installieren und Konfigurieren

Installieren:

pip install --upgrade borgmatic
# oder
apt install borgmatic

Konfiguration generieren:

mkdir -p /etc/borgmatic
borgmatic config generate --destination /etc/borgmatic/config.yaml

Minimalkonfiguration für einen Webserver:

source_directories:
  - /etc
  - /var/www
  - /home

repositories:
  - path: /var/backup/local-borg
    label: lokal
  - path: ssh://backup@192.168.1.100/~/backups/webserver
    label: entfernt-lan

storage:
  encryption_passphrase: "ihre-lange-zufaellige-passphrase-hier"
  compression: "zstd,3"

retention:
  keep_daily: 7
  keep_weekly: 4
  keep_monthly: 6
  keep_yearly: 1

postgresql_databases:
  - name: meine_app_produktion
    username: postgres
    format: custom

hooks:
  after_backup:
    - curl -fsS https://hc-ping.com/ihre-uuid > /dev/null
  on_error:
    - echo "Backup FEHLGESCHLAGEN am $(date)" | mail -s "Backup-Fehler" admin@beispiel.de

Schritt 2: Repository Initialisieren

borgmatic init --encryption repokey-blake2

Schlüssel exportieren und offline speichern:

borg key export /var/backup/local-borg /root/borg-schluessel-backup.txt

Schritt 3: Backups Ausführen und Planen

borgmatic create --verbosity 1 --list --stats  # erstes Backup
borgmatic          # erstellen + bereinigen + komprimieren + prüfen
borgmatic prune    # Aufbewahrungsrichtlinie anwenden
borgmatic compact  # freigegebenen Speicher zurückgewinnen
borgmatic check    # Integrität prüfen

systemd-Timer aktivieren:

systemctl enable --now borgmatic.timer

Schritt 4: Wiederherstellen

borgmatic list                    # verfügbare Archive anzeigen
borgmatic info --archive latest   # Details zum neuesten Archiv
borgmatic extract --archive latest --path /var/www/meineapp --destination /tmp/wiederherstellung
borgmatic restore --archive latest --database meine_app_produktion

Vergleich: Borgmatic vs Alternativen

Funktion Borgmatic Restic Duplicati Kopia
Verschlüsselung AES-256-CTR AES-256-CTR AES-256 AES-256-GCM
Deduplizierung Ja Ja Ja Ja
Konfiguration YAML CLI GUI/XML GUI/CLI
DB-Hooks Nativ (PG, MySQL) Externe Skripte Nein Nein
Nur-Anhängen Ja Nein Nein Nein
Fernziele SSH, SFTP S3, B2, SFTP FTP, S3, WebDAV S3, B2, SFTP

Häufige Probleme

Problem Lösung
Failed to create/acquire the lock borgmatic borg break-lock /pfad/zum/repo ausführen
Repository is not a valid Borg repository Falscher Pfad oder Repository nicht initialisiert; borgmatic init ausführen
Passphrase incorrect encryption_passphrase in der Konfiguration überprüfen
Connection closed by remote host SSH-Schlüssel nicht hinzugefügt oder borg serve fehlt in authorized_keys

Zusammenfassung

  • BorgBackup bietet Deduplizierung, AES-256-Verschlüsselung, Komprimierung und Nur-Anhängen-Modus.
  • Borgmatic kapselt Borg in einer einzigen YAML-Konfiguration für create, prune, compact, check und Hooks.
  • systemd-Timer verwaltet die Planung mit RandomizedDelaySec.
  • Datenbank-Hooks gewährleisten konsistente Dumps von PostgreSQL und MySQL.
  • 3-2-1-Strategie durch Auflistung mehrerer Repositories in der Konfiguration umgesetzt.
  • Stellen Sie Wiederherstellungen immer vorher auf die Probe, bevor Sie sie benötigen.

Verwandte Artikel