Sauvegarde chiffrée automatique sur HubiC avec Attic / Borg Backup

Attention, cet article a été posté en 2016. Il est possible que les informations mentionnées ne soient plus d'actualité, ou que mon opinion ait évolué. Merci d'en tenir compte lors de votre lecture.

Utiliser Attic ou Borg avec HubiC

Avant propos

Avant-tout, sachez que la solution proposée ici ne s'adresse pas aux professionnels qui veulent sauvegarder l'intégralité de leurs serveurs. Ne rêvez pas, ça ne fonctionnera pas avec des centaines de Go. D'autant qu'HubiC a annoncé avoir limité sa bande passante à 10 Mbps. Cette solution s'adresse donc aux particuliers ayant au maximum quelques Go à sauvegarder ; les pros préféreront une solution pro.

Montage HubiC avec HubicFuse

À l'heure où j'écris ces lignes, j'utilise HubicFuse pour faire un monter mon espace HubiC comme un système de fichiers classique. Ce n'est pas très rapide et pas toujours très stable, mais ça fonctionne pour mon usage.

Pour information, HubiC a annoncé récemment la création d'un petit soft, appelé svfs et encore en bêta, permettant d'arriver au même résultat. Je n'ai pas encore testé, mais ça semble prometteur. L'utilisation d'HubiC directement en SSH devrait également arriver, d'après ce tweet d'Octave Klaba.

Sur Debian, l'installation est relativement simple. En root :


1. Installez les dépendances nécessaires

aptitude install build-essential libcurl4-openssl-dev libxml2-dev  \
libssl-dev libfuse-dev libjson0-dev pkg-config unp fuse-utils libmagic-dev

2. Clonez directement les sources puis installez HubicFuse :

git clone https://github.com/TurboGit/hubicfuse.git
cd hubicfuse
./configure
make
make install

3. Créez une application développeur sur HubiC

Une fois connecté à HubiC, allez dans Mon compte » Développeurs » Ajouter une application puis suivez les instructions.


4. Générez le refresh_token attendue par l'application :

./hubic_token

puis répondez aux questions. Cela va générer 3 variables (client_id, client_secret, client_secret) à renseigner dans le fichier ~/.hubicfuse.


5. Et voilà, il ne vous reste plus qu'à monter votre espace HubiC comme système de fichiers :

mkdir /mnt/hubic
hubicfuse /mnt/hubic -o noauto_cache,sync_read,direct_io,big_writes

Utilisation de Borg Backup sur notre montage HubiC

À partir de maintenant, l'utilisation de Borg backup est très classique, je vous laisse vous référer à la documentation :

1. Création d'un nouveau repository Borg :

borg init /mnt/hubic/mon-backup.borg --encryption=keyfile

2. On sauvegarde nos documents :

borg create --stats --progress /mnt/hubic/mon-backup.borg::`date +%Y-%m-%d--%H:%M:%S` ~/Documents

Les commandes sont très semblables avec Attic.

Alternative

Il existe de nombreuses alternatives :

  • Une fois HubiC monté via hubicfuse, vous pouvez utiliser rsync. Attention cependant à bien utiliser les flags --inplace et --size-only notamment, car le montage via hubicfuse ne permet pas de manipuler les dates des fichiers.
  • L'outil Rclone permet de faire des sauvegardes sur différents services cloud, dont HubiC. Il a des fonctionnalités très intéressantes, j'y reviendrai dans un nouvel article.

Vos réflexions