Archives par mot-clé : sauvegarde

Borg backup version 2 est arrivé

Quelques nouveautés avec borg version 2, les commandes changent un peu, il est plus rapide, plus dur, meilleur, plus fort. Fait amusant, je l’ai utilisé sans savoir que c’était une référence à une série pas très connue que seuls des gens vachement plus vieux que moi regardaient.

On va commencer par définir un fichier contenant un mot de passe que Borg va pouvoir utiliser pour chiffrer les fichiers du dépot.

On définit quelques variables en Bash dans un fichier afin de ne pas avoir à se répéter partout. Faites chauffer votre terminal préféré:

# --------- archives dans un pool zfs nommé poule sur mon ordinateur nommé spaceship.
# --------- Ce nommage est arbitraire, vous pouvez bien sûr mettre ce que vous voulez et sauvegarder plusieurs dossiers tout aussi arbitraires.
# --------- Pour cet exemple on va dire que ce qu'on veut sauvegarder n'est pas l'intégralité de notre home mais un autre dossier auquel on fera référénce via une variable en bash par la suite.

export ARCHIVE_SYNCABLE="/home/poule/encrypted/stockage-syncable" # place where we have our things sorted, other than home
export BORG_PASS_FILE="$ARCHIVE_SYNCABLE/.ma-borg-passphrase"
mkdir -p $ARCHIVE_SYNCABLE

editor BORG_PASS_FILE # on définit notre phrase de passe dans notre éditeur de texte favori
export BORG_PASSCOMMAND="cat $BORG_PASS_FILE" # get the borg repo pass

export SPACESHIP_NEW_BORG_REPO="/home/poule/borg_archives/borg2_spaceship"
export BORG_REPO=$SPACESHIP_NEW_BORG_REPO

# --------- gestion des exclusions de dossier à sauvegarder
EXCLUDE=( ".yarn" ".nvm" "cache" ".cache" "Cache" "Steam" "steamapps" ".npm" ".yarn" "node_modules" ".mozilla" "vendor" "Steam" ".rbenv" ".config/borg" "@eaDir" "steamapps" "bower_components" ".cargo" ".gem" ".BOINC")
exclude_opts=()

for item in "${EXCLUDE[@]}"; do
exclude_opts+=( --exclude="$item" )
done

export exclude_opts

# --------- création du dossier qui va contenir notre dépot borg
mkdir -p $SPACESHIP_NEW_BORG_REPO

# --------- Installation de borg version 2 avec pip
pip install "borgbackup==2.0.0b5"
borg --version

# --------- vous devriez voir marqué "borg 2.0.0b5", si vous ne le voyez pas, relancez votre terminal

Et voilà on peut maintenant créer une nouvelle sauvegarde avec un dossier contenant peu de choses dans un premier temps.


Créer un nouveau dépôt

Ici on demande la création d’un dépot chiffré par plusieurs algorithmes contenant sa clé, qui nécessite une phrase de passe, que nous avons défini dans un fichier texte ci dessus. La variable BORG_PASSCOMMAND sera utilisée par borg pour aller chercher cette phrase.

borg rcreate --encryption=repokey-blake2-aes-ocb -r $BORG_REPO

# et voilà un "repository" créé, on va pouvoir le remplir de plusieurs sauvegardes

Créer une archive dans le dépôt

pour l’exemple j’ai précisé que je souhaitais une compression zstd de niveau 9, soit le niveau maximum.

borg create $BORG_REPO::encrypted_spaceship_{now} $ARCHIVE_SYNCABLE "${exclude_opts[@]}" --progress --verbose --stats --compression zstd,9

Pour notre exemple, la partie $ARCHIVE_SYNCABLE désigne un dossier que l’on veut inclure dans notre sauvegarde, mais on peut mentionner plusieurs chemins vers des dossiers ou des fichiers séparés d’un espace si on le veut.

Enlever les anciennes sauvegardes de notre dépot en faisant un tri automatique.

borg prune -r /home/poule/borg_archives/orgmode --list \
--list \
--match-archives 'sh:{hostname}-*' \
--show-rc \
--keep-daily 7 \
--keep-weekly 4 \
--keep-monthly 6


Pour convertir votre archive borg existante, y’a une commande mais ça ne marche pas 😀

Automatiser dans un cronjob

Plus qu’a faire vos commandes dans un fichier exécutable, par exemple localisé dans un dossier nextcloud situé ici: ~/Nextcloud/ressources/workflow_nextcloud/sync_spaceship.sh et à le lancer périodiquement dans un cronjob. Pour modifier votre table de commandes cron:

crontab -e

Et rajouter ceci dans votre crontab pour lancer ce script toutes les 20 minutes par exemple:

# lancer le script de sauvegarde toutes les 
*/20 * * * * /bin/bash ~/Nextcloud/ressources/workflow_nextcloud/sync_spaceship.sh

Le site web crontab.guru pourra vous aider à clarifier la périodicité de vos sauvegardes. Pour déterminer une périodicité optimale, il faut voir le temps que prend votre sauvegarde à se faire.

Il est aussi possible d’utiliser Borgmatic qui se chargera de vos sauvegardes borg selon un fichier de configuration. Ou encore Ansible et son rôle borg backup.

Vous trouverez la doc complète d’installation de plusieurs façons et le détail des commandes sur le site de documentation de borgbackup

have fun et bonne stratégie de backup!

Si vous aimez ce que nous faisons à Cipher Bliss, vous pouvez nous soutenir de plusieurs façons: en faisant un micro don sur liberapay , ou en cryptomonnaies. Le plus simple nous pour nous faire connaître étant de partager cet article.
Suivez moi sur Mastodon @tykayn@mastodon.cipherbliss.com.
Ce site restera libre comme un gnou dans la nature et sans pubs, parce qu'on vous aime. Que la source soit avec vous!

Des sauvegardes qui durent mille ans

J’ai animé un atelier au cours du premier camp CHATONS qui a eu lieu le week-end dernier. (Le Collectif des Hébergeurs Alternatifs, Transparents, Ouverts, Neutres et Solidaires vise à rassembler des structures proposant des services en ligne libres, éthiques et décentralisés afin de permettre aux utilisateur⋅ices de trouver rapidement des alternatives respectueuses de leurs données et de leur vie privée)

Pas de compte rendu du camp en lui même pour tout de suite, cependant voici un résumé de l’atelier qui aura duré près d’une heure.
https://libreto.sans-nuage.fr/camps-chatons/programme

Comment se protéger des pertes de données et ne pas perdre la confiance et les précieuses données des membres de son CHATONS?

L’atelier aborde la définition d’un modèle de menace pour savoir contre quoi se prémunir, et quels critères de qualité utiliser pour réaliser automatiquement ses sauvegardes en tant que particulier, ou en tant que CHATONS.
On y voit de la façon la plus « grand public » à la façon la plus « techno geek » comment récupérer ses données éparpillées en ligne, historiser, chiffrer, dédupliquer, compresser, répliquer, partager les clés d’accès, et prévoir des restaurations périodiques, de sorte que les données les plus cruciales survivent à leurs administrateurs et administratrices.

Jancovici et le stockage à froid, une remarquable utilisation des couches géologiquement stables


Liens:
Les slides sont disponibles ici:
https://slides.com/tykayn/les-sauvegardes-automatiques

La feuille de calcul pour cartographier son matériel
https://cloud.tykayn.fr/index.php/s/KQfYHpaSpgwrWam

Le site des CHATONS:
https://www.chatons.org

Le forum où tout se discute:
https://forum.chatons.org

La documentation pour ne pas réinventer la roue:
https://wiki.chatons.org

Si vous aimez ce que nous faisons à Cipher Bliss, vous pouvez nous soutenir de plusieurs façons: en faisant un micro don sur liberapay , ou en cryptomonnaies. Le plus simple nous pour nous faire connaître étant de partager cet article.
Suivez moi sur Mastodon @tykayn@mastodon.cipherbliss.com.
Ce site restera libre comme un gnou dans la nature et sans pubs, parce qu'on vous aime. Que la source soit avec vous!