TL;DR — Résumé Rapide
Borgmatic automatise les sauvegardes chiffrées avec BorgBackup sous Linux. Configurez YAML, planifiez avec systemd timers et appliquez la stratégie 3-2-1.
Borgmatic transforme la CLI puissante mais verbeuse de BorgBackup en une configuration YAML déclarative — un seul fichier gère des sauvegardes chiffrées, dédupliquées et compressées avec des politiques de rétention, des vérifications de cohérence, des hooks de base de données et des notifications de surveillance.
Prérequis
- Serveur Linux (Ubuntu 20.04+, Debian 11+, RHEL 8+ ou similaire)
- Python 3.8+ (pour pip install) ou accès à apt/dnf
- Accès SSH à une destination de sauvegarde distante
- Accès root ou sudo
Fondamentaux de BorgBackup
- Déduplication — Borg divise les fichiers en blocs de taille variable et stocke chaque bloc unique une seule fois.
- Chiffrement — Le mode
repokey-blake2stocke une clé chiffrée avec AES-256-CTR protégée par votre phrase de passe. - Compression —
lz4(rapide),zstd(équilibré) oulzma(maximum).zstd,3est la valeur par défaut moderne. - Mode append-only — Les dépôts peuvent être configurés en mode ajout seul pour qu’un client compromis ne puisse pas supprimer les archives existantes.
Étape 1: Installer et Configurer
Installer:
pip install --upgrade borgmatic
# ou
apt install borgmatic
Générer la configuration:
mkdir -p /etc/borgmatic
borgmatic config generate --destination /etc/borgmatic/config.yaml
Configuration minimale pour un serveur web:
source_directories:
- /etc
- /var/www
- /home
repositories:
- path: /var/backup/local-borg
label: local
- path: ssh://backup@192.168.1.100/~/backups/serveur
label: distant-lan
storage:
encryption_passphrase: "votre-phrase-de-passe-longue-et-aleatoire"
compression: "zstd,3"
retention:
keep_daily: 7
keep_weekly: 4
keep_monthly: 6
keep_yearly: 1
postgresql_databases:
- name: mon_app_production
username: postgres
format: custom
hooks:
after_backup:
- curl -fsS https://hc-ping.com/votre-uuid > /dev/null
on_error:
- echo "Sauvegarde ECHOUEE le $(date)" | mail -s "Erreur Sauvegarde" admin@exemple.com
Étape 2: Initialiser le Dépôt
borgmatic init --encryption repokey-blake2
Exporter et stocker la clé hors ligne:
borg key export /var/backup/local-borg /root/cle-borg-sauvegarde.txt
Étape 3: Exécuter et Planifier les Sauvegardes
borgmatic create --verbosity 1 --list --stats # première sauvegarde
borgmatic # créer + élaguer + compacter + vérifier
borgmatic prune # appliquer la politique de rétention
borgmatic compact # récupérer l'espace libéré
borgmatic check # vérifier l'intégrité
Activer le timer systemd:
systemctl enable --now borgmatic.timer
Étape 4: Restaurer
borgmatic list # voir les archives disponibles
borgmatic info --archive latest # détails de la dernière archive
borgmatic extract --archive latest --path /var/www/monapp --destination /tmp/restauration
borgmatic restore --archive latest --database mon_app_production
Comparaison: Borgmatic vs Alternatives
| Fonctionnalité | Borgmatic | Restic | Duplicati | Kopia |
|---|---|---|---|---|
| Chiffrement | AES-256-CTR | AES-256-CTR | AES-256 | AES-256-GCM |
| Déduplication | Oui | Oui | Oui | Oui |
| Configuration | YAML | CLI | GUI/XML | GUI/CLI |
| Hooks BDD | Natif (PG, MySQL) | Scripts externes | Non | Non |
| Append-only | Oui | Non | Non | Non |
| Destinations | SSH, SFTP | S3, B2, SFTP | FTP, S3, WebDAV | S3, B2, SFTP |
Problèmes Courants
| Problème | Solution |
|---|---|
Failed to create/acquire the lock | Exécuter borgmatic borg break-lock /chemin/depot |
Repository is not a valid Borg repository | Chemin incorrect ou dépôt non initialisé; exécuter borgmatic init |
Passphrase incorrect | Vérifier encryption_passphrase dans la configuration |
Connection closed by remote host | Clé SSH non ajoutée ou borg serve absent de authorized_keys |
Résumé
- BorgBackup fournit déduplication, chiffrement AES-256, compression et mode append-only.
- Borgmatic enveloppe Borg dans un unique config YAML couvrant create, prune, compact, check et hooks.
- Timer systemd gère la planification avec
RandomizedDelaySec. - Hooks de base de données garantissent des dumps cohérents de PostgreSQL et MySQL.
- Stratégie 3-2-1 implémentée en listant plusieurs dépôts dans la configuration.
- Testez toujours les restaurations avant d’en avoir besoin.