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

FunktionBorgmaticResticDuplicatiKopia
VerschlüsselungAES-256-CTRAES-256-CTRAES-256AES-256-GCM
DeduplizierungJaJaJaJa
KonfigurationYAMLCLIGUI/XMLGUI/CLI
DB-HooksNativ (PG, MySQL)Externe SkripteNeinNein
Nur-AnhängenJaNeinNeinNein
FernzieleSSH, SFTPS3, B2, SFTPFTP, S3, WebDAVS3, B2, SFTP

Häufige Probleme

ProblemLösung
Failed to create/acquire the lockborgmatic borg break-lock /pfad/zum/repo ausführen
Repository is not a valid Borg repositoryFalscher Pfad oder Repository nicht initialisiert; borgmatic init ausführen
Passphrase incorrectencryption_passphrase in der Konfiguration überprüfen
Connection closed by remote hostSSH-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