Afficher/cacher Sommaire
BorgBackup (abrégé : Borg) est un programme de sauvegarde par déduplication. En option, il prend en charge la compression et le chiffrement authentifié.
BorgBackup
Sauvegarde de Nextcloud dans une boite de stockage
Installation
Installer borgbackup
sudo apt install borgbackup
Créer utilisateur borg
En mode su : sudo -s
Créer un utilisateur borg (sans home) dédié aux sauvegardes par BorgBackup
useradd -M borg
Autoriser utilisateur borg à exécuter /usr/bin/borg
uniquement
echo "borg ALL=NOPASSWD: /usr/bin/borg" >> /etc/sudoers
Clés ssh borg
créer une clé SSH pour l’authentification borg
ssh-keygen -t ed25519 -f /root/.ssh/id_borg_ed25519
Validez en appuyant sur la touche « Entrée » à toutes les questions
Vous devriez maintenant avoir une clé privée contenue dans le fichier /root/.ssh/id_borg_ed25519
, et une clé publique contenue dans le fichier /root/.ssh/id_borg_ed25519.pub
La clé privée ne doit jamais être partagée.
Ajout clé publique à la boite de stockage
Depuis un poste ayant accès à la boîte de stockage, on récupère le fichier authorized_keys
de la boîte de stockage bx11-yann dans un fichier nommé storagebox_authorized_keys
echo -e "get .ssh/authorized_keys storagebox_authorized_keys" | sftp -P 23 -i ~/.ssh/bx11-yann-ed25519 u326239@u326239.your-storagebox.de
cat >> storagebox_authorized_keys
Copier/coller le contenu du fichier du fichier de clef publique (fichier cat /root/.ssh/id_borg_ed25519.pub
* de la machine à sauvegarder dans ce terminal, et presser [Ctrl]+[D] pour valider.
On renvoie le fichier modifié storagebox_authorized_keys
dans le fichier authorized_keys
de la boîte de stockage bx11-yann
echo -e "put storagebox_authorized_keys .ssh/authorized_keys" | sftp -P 23 -i ~/.ssh/bx11-yann-ed25519 u326239@u326239.your-storagebox.de
Tester la connexion à la boîte de stockage (toujours en mode su)
sftp -P 23 -i /root/.ssh/id_borg_ed25519 u326239@u326239.your-storagebox.de
The authenticity of host '[u326239.your-storagebox.de]:23 ([2a01:4f8:b23:2000::35]:23)' can't be established.
ECDSA key fingerprint is SHA256:oDHZqKXnoMtgvPBjjC57pcuFez28roaEuFcfwyg8O5c.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[u326239.your-storagebox.de]:23,[2a01:4f8:b23:2000::35]:23' (ECDSA) to the list of known hosts.
Connected to u326239.your-storagebox.de.
sftp>
Saisir quit pour sortir
BorgBackup sauvegarde Nextcloud
Création du dépôt nextcloud (repository)
on va maintenant travailler sur un dépôt distant à travers SSH, il va falloir fournir le chemin du dépôt sous la forme d’une URL avec un peu plus d’informations
ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/nextcloud
phrase forte (passphrase)
Ajout de la phrase forte dans un fichier au dossier /root/.borg
sudo -s
mkdir -p /root/.borg
# ajout phrase
echo "<La phrase de passe forte>" > /root/.borg/nextcloud.passphrase
Conserver cette phrase, elle sera demandé pour la création du dépôt borg
Initialisation dépôt distant
Initialisation dépôt distant en mode su
export BORG_PASSPHRASE="$(cat /root/.borg/nextcloud.passphrase)"
export BORG_RSH='ssh -i /root/.ssh/id_borg_ed25519'
BORG_REPOSITORY=ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/nextcloud
borg init --encryption=repokey $BORG_REPOSITORY
A la fin de la commande
By default repositories initialized with this version will produce security
errors if written to with an older version (up to and including Borg 1.0.8).
If you want to use these older versions, you can disable the check by running:
borg upgrade --disable-tam ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/nextcloud
See https://borgbackup.readthedocs.io/en/stable/changes.html#pre-1-0-9-manifest-spoofing-vulnerability for details about the security implications.
IMPORTANT: you will need both KEY AND PASSPHRASE to access this repo!
If you used a repokey mode, the key is stored in the repo, but you should back it up separately.
Use "borg key export" to export the key, optionally in printable format.
Write down the passphrase. Store both at safe place(s).
Procédure sauvegarde nextcloud vers boîte de stockage
Créer un script de sauvegarde en mode su (notez l’usage de borg prune pour supprimer les archives trop anciennes) : /root/.borg/ncbackup.sh
Etendre Réduire
Le rendre exécutable
chmode +x /root/.borg/ncbackup.sh
Exécution
/root/.borg/ncbackup.sh
Automatiser sauvegarde
Automatiser en utilisant systemd timer
Le service /etc/systemd/system/borg-nextcloud.service
[Unit]
Description=BorgBackup nextcloud
[Service]
User=root
ExecStart=/usr/bin/bash /root/.borg/ncbackup.sh
[Install]
WantedBy=multi-user.target
Le timer /etc/systemd/system/borg-nextcloud.timer
[Unit]
Description=Exécution BorgBackup nextcloud
[Timer]
Unit=borg-nextcloud.service
OnCalendar=*-*-* 02:30
[Install]
WantedBy=timers.target
Exécution tous les jours
Activez/démarrez le timer, puis vérifiez qu’il est chargé et actif
# Recharger
sudo systemctl daemon-reload
# Activation et lancement
sudo systemctl enable borg-nextcloud.timer --now
systemctl status borg-nextcloud.timer
Vérifiez qu’il a été démarré en vérifiant s’il apparaît dans la liste des minuteries :
systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
Wed 2024-12-11 02:30:00 CET 8h left - - borg-nextcloud.timer borg-nextcloud.service
Lorsque vous voulez voir si les sauvegardes se sont déroulées correctement, vous pouvez consulter le journal le plus récent
systemctl status borg-nextcloud
Ou afficher tous les journaux avec :
sudo journalctl -u borg-nextcloud
Liste des sauvegardes sous Lenovo
Pour lister les sauvegardes (en mode su)
export BORG_PASSPHRASE="$(cat /home/leno/sharenfs/pc1/.borg/nextcloud.passphrase)"
export BORG_RSH='ssh -i /home/leno/sharenfs/pc1/.borg/nextcloud.borgssh'
borg list --short $(cat /home/leno/sharenfs/pc1/.borg/nextcloud.repository)
Résultat commande
nextcloud-2024-12-10T18:39:36
nextcloud-2024-12-10T18:43:27