TL;DR — Résumé Rapide
Guide BorgBackup : sauvegardes déduplication, chiffrées sous Linux. Installation, systemd, SSH distant, Borgmatic et reprise après sinistre complète.
BorgBackup (borg) est un outil de sauvegarde dédupliqué, compressé et chiffré pour Linux qui peut réduire le stockage des sauvegardes de 50 à 90 % par rapport aux sauvegardes complètes traditionnelles. Ce guide couvre l’installation, l’automatisation avec Borgmatic, les sauvegardes distantes par SSH et les tests de reprise après sinistre.
Prérequis
- Système Linux (Ubuntu 22.04+, Debian 12+, RHEL 9+ ou Fedora 38+).
- Accès root ou sudo sur la machine à sauvegarder.
- Destination de sauvegarde : disque local, disque externe ou serveur distant avec accès SSH.
- Pour les sauvegardes distantes : BorgBackup installé sur le client et le serveur de sauvegarde.
Pourquoi BorgBackup ?
Les outils de sauvegarde traditionnels copient les fichiers tels quels. BorgBackup utilise le découpage défini par le contenu — il divise chaque fichier en blocs de longueur variable, calcule le hash de chaque bloc et ne stocke que les blocs jamais vus auparavant :
- Déduplication — 10 sauvegardes quotidiennes de 100 Go peuvent n’utiliser que ~110 Go au total.
- Chiffrement AES-256-CTR — Les données sont chiffrées avant de quitter la machine source.
- MACs authentifiés — BLAKE2b ou SHA-256 garantissent l’intégrité des sauvegardes.
- Multiples options de compression —
lz4(rapide),zstd(équilibré),lzma(taille minimale). - Transport SSH — Sauvegardez sur n’importe quel serveur distant sans daemon spécial.
- Montage FUSE — Parcourez les archives de sauvegarde comme un système de fichiers normal.
Installation
Debian / Ubuntu
sudo apt update && sudo apt install borgbackup -y
Fedora / RHEL / Rocky Linux
sudo dnf install borgbackup -y
Dernière version via pip
pip install --user borgbackup
borg --version
Initialiser un Dépôt
Un dépôt BorgBackup est le conteneur de stockage qui héberge toutes vos archives de sauvegarde.
Dépôt local
borg init --encryption=repokey-blake2 /backup/borg-repo
Dépôt distant par SSH
borg init --encryption=repokey-blake2 borg@serveurbackup:/backup/borg-repo
Exporter la clé du dépôt immédiatement
borg key export /backup/borg-repo ~/borg-repo-key.txt
Conservez borg-repo-key.txt et la phrase de passe dans un emplacement séparé du dépôt de sauvegarde — un gestionnaire de mots de passe, une clé USB hors ligne ou une copie imprimée. Perdre les deux signifie une perte de données permanente.
Comparatif des modes de chiffrement
| Mode | Emplacement de la clé | Cas d’usage |
|---|---|---|
repokey-blake2 | Dans le dépôt | Le plus simple ; recommandé pour la plupart |
keyfile-blake2 | Sur le client uniquement | Sécurité maximale ; la clé ne quitte jamais le client |
none | N/A | Réseaux internes uniquement ; sans chiffrement |
Créer des Sauvegardes
Archive de base
export BORG_PASSPHRASE='votre-phrase-de-passe-forte'
export BORG_REPO='/backup/borg-repo'
borg create \
--stats \
--progress \
--compression lz4 \
"$BORG_REPO::{hostname}-{now:%Y-%m-%dT%H:%M}" \
/etc /home /var/www /opt \
--exclude '*.log' \
--exclude '*.tmp' \
--exclude '/home/*/.cache' \
--exclude '/home/*/.local/share/Trash'
Options de compression
| Option | Vitesse | Ratio | Idéal pour |
|---|---|---|---|
lz4 | Très rapide | Modéré | Sauvegardes automatiques quotidiennes |
zstd,3 | Rapide | Bon | Usage général |
zstd,11 | Modérée | Excellent | Environnements à stockage limité |
lzma,6 | Lente | Maximum | Archivage ; accès peu fréquent |
Lister et Monter les Archives
Lister toutes les archives du dépôt
borg list /backup/borg-repo
Monter une archive pour navigation FUSE
mkdir -p /mnt/borg-restaurer
borg mount /backup/borg-repo::webserver-2026-03-22T03:00 /mnt/borg-restaurer
# Parcourez et copiez les fichiers normalement
ls /mnt/borg-restaurer/home/utilisateur/
# Démontez quand c'est terminé
borg umount /mnt/borg-restaurer
Extraire des Fichiers
Restauration de chemins spécifiques
cd /tmp/restaurer
borg extract /backup/borg-repo::webserver-2026-03-22T03:00 \
home/utilisateur/documents \
etc/nginx
Simulation (lister sans extraire)
borg extract --dry-run --list /backup/borg-repo::webserver-2026-03-22T03:00
Élagage des Anciennes Archives
borg prune supprime les archives qui ne respectent plus la politique de rétention. Exécutez-le après chaque sauvegarde.
borg prune \
--keep-daily=7 \
--keep-weekly=4 \
--keep-monthly=6 \
--keep-yearly=2 \
--list \
/backup/borg-repo
Après l’élagage, exécutez la compaction pour libérer l’espace disque :
borg compact /backup/borg-repo
Automatisation avec un Timer systemd
/etc/systemd/system/borg-backup.service
[Unit]
Description=Sauvegarde quotidienne BorgBackup
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
User=root
Environment=BORG_PASSPHRASE=votre-phrase-de-passe-forte
Environment=BORG_REPO=/backup/borg-repo
ExecStart=/usr/bin/borg create --stats --compression lz4 \
$BORG_REPO::{hostname}-{now:%%Y-%%m-%%dT%%H:%%M} \
/etc /home /var /opt \
--exclude '*.log' --exclude '/home/*/.cache'
ExecStartPost=/usr/bin/borg prune --keep-daily=7 --keep-weekly=4 --keep-monthly=6 $BORG_REPO
ExecStartPost=/usr/bin/borg compact $BORG_REPO
/etc/systemd/system/borg-backup.timer
[Unit]
Description=Timer quotidien BorgBackup
[Timer]
OnCalendar=daily
RandomizedDelaySec=30min
Persistent=true
[Install]
WantedBy=timers.target
Activer et démarrer
systemctl daemon-reload
systemctl enable --now borg-backup.timer
journalctl -u borg-backup.service --since today
Sauvegardes Distantes par SSH
Restreindre la clé SSH sur le serveur de sauvegarde
Dans ~/.ssh/authorized_keys du serveur de sauvegarde, préfixez la clé publique avec une commande forcée pour que la clé ne puisse être utilisée que pour borg :
command="borg serve --restrict-to-path /backup/borg-repo",restrict ssh-rsa AAAA...votreclé...
Le mot-clé restrict désactive le transfert de port, d’agent et X11.
Configuration du client
export BORG_REPO='borg@serveurbackup:/backup/borg-repo'
export BORG_RSH='ssh -i /root/.ssh/borg_ed25519 -o StrictHostKeyChecking=yes'
borg create "$BORG_REPO::{hostname}-{now:%Y-%m-%dT%H:%M}" /etc /home
Borgmatic : Wrapper de Haut Niveau
Installation
pip install borgmatic
/etc/borgmatic/config.yaml
repositories:
- path: /backup/borg-repo
label: local
source_directories:
- /etc
- /home
- /var/www
exclude_patterns:
- '*.log'
- /home/*/.cache
encryption_passphrase: "votre-phrase-de-passe-forte"
compression: lz4
keep_daily: 7
keep_weekly: 4
keep_monthly: 6
hooks:
on_error:
- echo "Sauvegarde échouée le $(date)" | mail -s "Erreur Borg sur $(hostname)" admin@exemple.com
healthchecks:
ping_url: https://hc-ping.com/votre-uuid
Exécuter borgmatic manuellement
borgmatic --verbosity 1
Procédure de Reprise après Sinistre
- Installez BorgBackup sur le système de remplacement.
- Transférez le fichier de clé exporté vers le nouveau système.
- Définissez les identifiants :
export BORG_PASSPHRASE='votre-phrase-de-passe' export BORG_REPO='borg@serveurbackup:/backup/borg-repo' - Listez les archives disponibles :
borg list "$BORG_REPO" - Extrayez l’archive la plus récente :
cd / borg extract "$BORG_REPO::webserver-2026-03-22T03:00" - Vérifiez la restauration avant de rediriger le trafic de production.
Effectuez des tests de restauration régulièrement (au minimum trimestriels). Une sauvegarde jamais testée n’est pas une sauvegarde fiable.
Comparatif : Borg vs Restic vs Duplicati vs rsync vs Timeshift
| Fonctionnalité | BorgBackup | Restic | Duplicati | rsync | Timeshift |
|---|---|---|---|---|---|
| Déduplication | Oui | Oui | Non | Non | Oui (hard links) |
| Chiffrement | AES-256 | AES-256 | AES-256 | Non (natif) | Non |
| Compression | lz4/zstd/lzma | zstd | Deflate | Non | Non |
| Backends distants | SSH, BorgBase | S3, B2, SFTP, beaucoup | S3, FTP, WebDAV | SSH | Local uniquement |
| Interface graphique | Non | Vorta (tiers) | Oui (web) | Non | Oui |
| Idéal pour | Serveurs, DevOps | Flexibilité multicloud | Utilisateurs desktop | Miroir simple | Restauration desktop |
Résumé
- La déduplication ne stocke que les blocs uniques — 10 sauvegardes quotidiennes de 100 Go utilisent ~110 Go.
- Exportez toujours la clé du dépôt et conservez-la séparément des sauvegardes.
- Utilisez le chiffrement repokey-blake2 pour une protection AES-256 authentifiée.
- Élaguez avec
borg pruneet libérez l’espace avecborg compactaprès chaque exécution. - Automatisez avec le timer systemd pour une planification fiable avec journalisation journald.
- Restreignez les clés SSH avec
command="borg serve ..."dansauthorized_keys. - Utilisez Borgmatic pour remplacer les scripts shell par une configuration YAML maintenable.
- Testez les restaurations trimestriellement — une sauvegarde jamais testée n’est pas fiable.