BorgBackup
BorgBackup (kurz: Borg) ist ein modernes Backup-Werkzeug mit Deduplizierung, Komprimierung und Verschlüsselung. Statt jedes Mal alles zu kopieren, zerlegt Borg Daten in Blöcke und speichert gleiche Blöcke nur einmal — auch über verschiedene Backups hinweg.
Vorteile gegenüber rsync/tar
Abschnitt betitelt „Vorteile gegenüber rsync/tar“| Merkmal | rsync | tar | BorgBackup |
|---|---|---|---|
| Deduplizierung | — | — | ✓ |
| Verschlüsselung | — | — | ✓ |
| Komprimierung | — | ✓ | ✓ |
| Viele Versionen | mit Hard-Links | manuell | nativ |
| Remote-Backup | ✓ (SSH) | — | ✓ (SSH) |
| Integrität prüfen | — | — | ✓ |
Installation
Abschnitt betitelt „Installation“# RHEL/Fedorasudo dnf install borgbackup
# Debian/Ubuntusudo apt install borgbackupKonzepte
Abschnitt betitelt „Konzepte“- Repository: Das Backup-Ziel — ein Verzeichnis, das Borg verwaltet
- Archiv: Ein einzelner Backup-Snapshot im Repository (benannt z.B.
server-2025-01-15) - Deduplizierung: Gleiche Datenblöcke werden nur einmal gespeichert — auch über Archive hinweg
Workflow
Abschnitt betitelt „Workflow“1. Repository initialisieren
Abschnitt betitelt „1. Repository initialisieren“# Lokal (unverschlüsselt)borg init --encryption=none /backup/mein-repo
# Lokal mit Verschlüsselungborg init --encryption=repokey /backup/mein-repo
# Remote über SSHborg init --encryption=repokey user@backup-server:/backup/mein-repoBei repokey wird der Verschlüsselungsschlüssel im Repository gespeichert und
durch ein Passphrase geschützt. Das Passphrase wird beim Init abgefragt.
2. Backup erstellen
Abschnitt betitelt „2. Backup erstellen“borg create /backup/mein-repo::server-{now:%Y-%m-%d} \ /home \ /etc \ --exclude /home/*/.cache \ --exclude /home/*/.local/share/Trash \ --compression lz4::server-{now:%Y-%m-%d}— Archivname mit aktuellem Datum--compression lz4— schnelle Komprimierung (Alternativen:zstd,lzma)
3. Archive auflisten
Abschnitt betitelt „3. Archive auflisten“# Alle Archive im Repositoryborg list /backup/mein-repo
# Inhalt eines Archives anzeigenborg list /backup/mein-repo::server-2025-01-154. Wiederherstellen
Abschnitt betitelt „4. Wiederherstellen“# Gesamtes Archiv extrahierencd /restoreborg extract /backup/mein-repo::server-2025-01-15
# Nur bestimmte Dateienborg extract /backup/mein-repo::server-2025-01-15 home/micha/.bashrc
# Einzelne Datei anzeigen (ohne zu extrahieren)borg extract --stdout /backup/mein-repo::server-2025-01-15 home/micha/.bashrc5. Integrität prüfen
Abschnitt betitelt „5. Integrität prüfen“borg check /backup/mein-repoPrüft Repository-Integrität und Vollständigkeit aller Archive.
6. Alte Archive löschen (Pruning)
Abschnitt betitelt „6. Alte Archive löschen (Pruning)“borg prune /backup/mein-repo \ --keep-daily=7 \ --keep-weekly=4 \ --keep-monthly=6 \ --listBehält die letzten 7 Tages-, 4 Wochen- und 6 Monatsbackups — alle älteren werden
gelöscht. --list zeigt an, was behalten und was gelöscht wird.
Automatisiertes Backup-Skript
Abschnitt betitelt „Automatisiertes Backup-Skript“#!/bin/bashexport BORG_REPO=/backup/mein-repoexport BORG_PASSPHRASE='geheimes-passphrase' # oder aus Datei lesen
ARCHIV_NAME="server-{now:%Y-%m-%dT%H:%M}"LOG=/var/log/borg-backup.log
echo "$(date): Starte Backup" >> "$LOG"
borg create \ --compression lz4 \ --exclude-caches \ --exclude "/home/*/.cache" \ "$BORG_REPO::$ARCHIV_NAME" \ /home /etc /var/www \ >> "$LOG" 2>&1
borg prune \ --keep-daily=7 \ --keep-weekly=4 \ --keep-monthly=3 \ "$BORG_REPO" \ >> "$LOG" 2>&1
echo "$(date): Backup abgeschlossen" >> "$LOG"Borgmatic — Borg mit Konfigurationsdatei
Abschnitt betitelt „Borgmatic — Borg mit Konfigurationsdatei“borgmatic ist ein Wrapper um Borg, der alle Parameter in einer YAML-Datei bündelt:
sudo dnf install borgmatic # oder: pip3 install borgmaticKonfiguration /etc/borgmatic/config.yaml:
source_directories: - /home - /etc
repositories: - path: /backup/mein-repo label: lokal
exclude_patterns: - "*/.cache"
retention: keep_daily: 7 keep_weekly: 4 keep_monthly: 6
compression: lz4encryption_passphrase: "geheimes-passphrase"borgmatic create # Backup erstellenborgmatic prune # Alte Archive löschenborgmatic check # Integrität prüfenborgmatic # Alles in einem Schritt