07/02/2020

Sauvegarde incrémentale avec Borg

Installation

apt install borgbackup borgbackup-doc

Utilisation

Créer un dépôt de sauvegarde :

borg init --encryption=repokey [repertoire de sauvegarde]

On spécifie pas ce qu’on veut sauvegarder à cette étape, juste le répertoire de destination

Pour ne pas chiffrer les sauvegardes, mettez l’option encryption à none

Faire une sauvegarde

borg create [repertoire de sauvegade]::[savename] [repertoire à sauvegader]

Lister les backups

borg list [repertoire de sauvegade]

Lister un backup

borg list [repertoire de sauvegarde]::[savename]

Monter une sauvegarde

borg mount [savefolder]::[savename] /tmp/mymountpoint

Extraire une sauvegarde

borg extract [savefolder]::[savename]

Créer une archive par jour

borg create /path-to-repo::{now:%Y%m%d} ~/src ~/Documents

Nettoyer les sauvegardes

borg prune --keep-daily=24 --keep-weekly=4 --keep-monthly=-1 /repo

Cette commande ne garde que les sauvegardes des 24 derniers jours, ensuite une par semaine pendant 4 semaines et ensuite une par mois à l’infini.

Script sauvegarde containers

#!/bin/bash

export BORG_PASSPHRASE='mdp'

# Nextcloud
cd /home/omer/containers/nextcloud
lxc-stop -n nextcloud
sleep 5
borg create /home/omer/borg/containers/nextcloud::{now:%Y%m%d} .
lxc-start -n nextcloud
borg prune --keep-daily=20 --keep-weekly=4 --keep-monthly=-1 /borg/containers/nextcloud

# Git
cd /home/omer/containers/git
lxc-stop -n git
sleep 5
borg create /home/omer/borg/containers/git::{now:%Y%m%d} .
lxc-start -n git
borg prune --keep-daily=7 --keep-weekly=4 --keep-monthly=-1 /borg/containers/git

Je rajoute ensuite une crontab

contab -e
0 4 * * * bash /home/omer/borg/containers/daily.sh >> /home/omer/borg/containers/log.log