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
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.
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.
borg create /chemin/du/dépôt::identifiant_archive /dossier/à/sauvegarder
Les options suivantes sont disponibles :
--info pour afficher les informations sur l'archive (notamment sa taille)--compression zstd,6 pour utiliser la compression zstd à un niveau de compression 6Si 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'
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)
Pour supprimer les sauvegardes plus vieilles que 60 jours :
borg prune --keep-within 60d --list /chemin/vers/le/dépôt/
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>
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