Ceci est une ancienne révision du document !
BorgBackup
Installation
Avec pip :
sudo apt install libssl-dev libacl1-dev python3-pip python3-venv python3-pkgconfig pip install pkgconfig wheel pip install borgbackup
Il est aussi possible d'utiliser le binaire fourni directement par BorgBackup :
wget https://github.com/borgbackup/borg/releases/download/1.1.17/borg-linux64 mv borg-linux64 /usr/local/bin/borg chown root:root /usr/local/bin/borg chmod 755 /usr/local/bin/borg
Utilisation
On commence par initialiser un dépôt qui va stocker les sauvegardes. Chaque sauvegarde dans le dépôt est appelée une archive.
Initialisation
borg init --encryption=none /media/BigData/linux/tmp/zds/borg-repo
--encryption=none ne chiffre pas les sauvegardes. --encryption=repokey chiffre les sauvegardes à l'aide d'une clé protégée par une phrase de passe. La clé est sauvegardée au sein du dépôt, mais il est tout de même conseillé de l'exporter et la sauvegarder quelque part ailleurs dans un lieu sûr.
Il est possible d'utiliser l'option --umask 022 pour indiquer avec quel umask créer le dépôt.
Pour faire la sauvegarde sur un serveur SSH, il faut utiliser la syntaxe suivante : hôte_ssh:/chemin/vers/le/dépôt.
Sauvegardes
borg create /chemin/du/dépôt::identifiant_archive /dossier/à/sauvegarder
Les options suivantes sont disponibles :
--infopour afficher les informations sur l'archive (notamment sa taille)--compression zstd,6pour utiliser la compression zstd à un niveau de compression 6
Si les sauvegardes sont chiffrées, il est possible d'indiquer comment récupérer la phrase de passe :
export BORG_PASSCOMMAND='cat fichier_avec_la_phrase_de_passe'
Afficher la dernière archive
borg list --last 1 /chemin/vers/le/dépôt
Pour l'utiliser dans une autre commande :
borg extract --verbose --progress /chemin/vers/le/dépôt::$(borg list --last 1 --format '{archive}{NL}' /chemin/vers/le/dépôt)
Supprimer les vieilles sauvegardes
Pour supprimer les sauvegardes plus vieilles que 60 jours :
borg prune --keep-within 60d --list /chemin/vers/le/dépôt/
Héberger les dépôts sur un serveur SSH
Il est possible de limiter à Borg l'utilisation de la clé SSH que Borg utilise pour se connecter au serveur qui héberge le dépôt, en préfixant l'entrée dans le fichier ~/.ssh/authorized_keys :
restrict,from="ip.du.client.borg",command="borg serve --append-only --restrict-to-repository /chemin/du/depot/borg --storage-quota 200G" <clé SSH>
Quotas
Changer la valeur
Penser à changer la valeur du paramètre --storage-quota dans le fichier .ssh/authorized_keys.
Pour changer la valeur dans la configuration du dépôt :
borg config --list /chemin/local/du/depot borg config /chemin/local/du/depot storage_quota 15G