====== BorgBackup ====== * https://borgbackup.readthedocs.io/en/stable/index.html * [[https://connect.ed-diamond.com/Linux-Pratique/LP-098/Ne-procrastinez-plus-vos-sauvegardes-grace-a-Borg3|Ne procrastinez plus vos sauvegardes grâce à Borg]] * https://torsion.org/borgmatic/ * [[https://fljd.in/2025/10/08/sauvegardes-personnelles-avec-restic/|Sauvegardes personnelles avec Restic]] ==== 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 [[https://borgbackup.readthedocs.io/en/stable/installation.html?__do_not_save__#standalone-binary|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 : * ''%%--%%info'' pour afficher les informations sur l'archive (notamment sa taille) * ''%%--%%compression zstd,6'' pour 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 ==== * https://borgbackup.readthedocs.io/en/stable/deployment/hosting-repositories.html 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" ==== 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