Les sauvegardes avec Borg


Ce nouvel outil de sauvegarde est très simple d'utilisation. Il fera sont apparition dans la version Stretch mais il est disponible dans les backports pour que les utilisateurs, comme moi, de la version Jessie puisse commencé à l'utiliser.

A titre d'info, comme alternative il y a :

  • Backuppc
  • Duplicity
  • Dirvish
  • Bacula

Initialisation

Admettons que nous souhaitons backuper une machine s'appellant “hostname”. Commençons par choisir le répertoire de sauvegarde :

mkdir /opt/borg

Il est également capable d'effectuer des sauvegarde distantes :

borg init --encryption=none mon-utilisateur@mon-serveur-distant:/opt/borg/hostname

Pour en savoir plus sur le chiffrement

Manipuler les sauvegardes

  • Sauvegarder les documents de notre serveur web :
borg create /opt/borg/hostname::mon-backup /var/www/html
  • Lister les sauvegardes :
borg list /opt/borg/hostname
mon-backup                           Sun, 2017-03-12 16:19:47
  • Supprimer cette sauvegarde :
borg delete /opt/borg/hostname::mon-backup
  • Réutiliser une sauvegarde :
borg extract /opt/borg/hostname::mon-backup /var/www/html/
  • Réutiliser une sauvegarde, sauf les fichiers ruby :
borg extract /opt/borg/hostname::mon-backup /var/www/html/ --exclude '*.rb'
  • Renommer une sauvegarde :
borg rename /opt/borg/hostname::mon-backup nouveau-nom

* Rendre accessible une sauvegarde dans un point de montage :

borg mount /opt/borg/hostname::mon-backup /mnt
borg umount /mnt
Au cas où si ça ne fonctionne pas dans un conteneur LXC car :
fuse:device not found , try 'modprobe fuse' first.

Il faut faire:

mknod -m 666 /dev/fuse c 10 229
  • Informations sur la sauvegarde :
borg info /opt/borg/hostname::mon-backup
  • Supprimer de veilles sauvegardes datent plus de 4 semaines :
borg prune -w 4 /opt/borg/hostname
  • Vérifier l'état des sauvegardes :
borg check /opt/borg/hostname::mon-backup
borg check /opt/borg/hostname

Backup sur clé USB chiffré

Admettons que l'on veuille sauvegarder des données d'un serveur sur une clé USB avec un conteneur chiffré :

dd if=/dev/random of=/root/.luks-for-backup.key bs=1 count=256
cryptsetup --verbose --key-size=256 luksFormat /dev/sdc of=/root/.luks-for-backup.key
cryptsetup luksOpen --key-file /root/.luks-for-backup.key /dev/sdc sdc_crypt
mkfs.ext4 -d /media/btatu/ /dev/mapper/sdc_crypt
mount /dev/mapper/sdc_crypt /media/btatu
 
mkdir /media/sshfs
sshfs -p 222 $USER@178.170.1.29:/home/$USER/ /media/sshfs/
 
borg create /media/btatu::test /media/sshfs/tmp/
 
mkdir /media/borg
borg list /media/btatu/
borg mount /media/btatu::test /media/borg
borg umount /media/borg
 
umount /media/sshfs
umount /media/btatu
cryptsetup luksClose vdc_crypt

Lors des prochaines sauvegardes

cryptsetup luksOpen --key-file /root/.luks-for-backup.key /dev/sdc sdc_crypt
mount /dev/mapper/sdc_crypt /media/btatu
 
sshfs -p 222 $USER@178.170.1.29:/home/$USER/ /media/sshfs/
 
borg create /media/btatu::test /media/sshfs/tmp/
 
umount /media/sshfs
umount /media/btatu
cryptsetup luksClose vdc_crypt