Sauvegarder ses données avec Rclone
Rclone

Sauvegarder ses données avec Rclone

Table des matières

Rclone va vous permettre de sauvegarder vos données en ligne. De manière chiffrée ou non. Nous verrons les deux cas de figure. Tant qu'à faire.

Rclone offre tellement de possibilités que je vais tenter de faire au plus simple pour que votre tentative soit couronnée de succès. Il sera toujours temps après que vous ayez un peu la main de vous plonger plus en profondeur dans les configurations de Rclone.

Il y énormément de services cloud disponibles, mais je vais partir du principe que vous louer un serveur dédié en ligne. Libre à vous d'adapter la partie ou il faut choisir le serveur distant.

Les sauvegardes sont incrémentielles.

Dans l'exemple ici je vais, en accord avec le reste du site, vouloir sauver le dossier appdata qui contient mes containers et données. Adaptez les chemins suivant votre configuration.

1, 2, 4, c'est parti!

⚡Caractéristiques

  • Les hachages MD5/SHA-1 sont vérifiés à tout moment pour l'intégrité des fichiers.
  • Horodatages conservés sur les fichiers.
  • Synchronisations partielles prises en charge sur la base d'un fichier entier.
  • Mode Copie pour simplement copier les fichiers nouveaux/modifiés.
  • Mode Sync (one way) pour rendre un répertoire identique.
  • Bisync (bidirectionnel) pour garder deux répertoires synchronisés de manière bidirectionnelle.
  • Mode de vérification pour vérifier l'égalité de hachage des fichiers.
  • Peut se synchroniser vers et depuis le réseau, par ex. deux comptes cloud différents.
  • Regroupement facultatif de fichiers volumineux (Chunker).
  • Compression transparente en option (Compresser).
  • Cryptage optionnel (Crypte).
  • Support FUSE en option (montage rclone).
  • Téléchargements multithread sur le disque local.
  • Peut servir des fichiers locaux ou distants via HTTP/WebDAV/FTP/SFTP/DLNA.

Installer Rclone

Première chose à faire, installer Rclone sur votre serveur local:

sudo -v ; curl https://rclone.org/install.sh | sudo bash

Créer un fichier de config

Il va falloir créer un fichier de configuration Rclone, lancer cette commande pour commencer la configuration:

rclone config

Tapez n pour créer un nouveau fichier de configuration, ensuite donner un nom à votre remote:

Il y a de nombreuses options pour choisir un service cloud ou ssh/sftp, dans notre cas je vais choisir ssh/sftp qui a le numéro 44:

Donc je tape 44 et ensuite je réponds aux questions concernant le serveur distant.

  • host => l'ip du serveur ou le nom de domaine s'il pointe bien sur l'ip.
  • user => le nom d'utilisateur du serveur
  • port => 22

Ici il faudra taper y afin d'entrer le mot de passe du serveur distant;

Après avoir validé y, entrer 2 fois votre mot de passe de l'utilisateur:

Et vous faites Entrée à toutes les questions jusqu'au moment ou vous arrivez à quelque chose qui ressemble à ça:

Appuyez sur q pour terminer. C'est tout pour le moment.


Différence entre copy et sync

Pour faire simple on va dire que vous serez amené à utiliser soit copy soit sync.

  • copy => avec copy, si vous effacez entre deux sauvegardes, sur le serveur local, des fichiers ou des dossiers, cela n'aura pas d'impact sur le serveur distant. Le serveur distant conservera les fichiers envoyés, même ceux supprimées en local.
  • sync => dans ce cas, tout sera synchronisé, si vous effacez des fichiers ou des dossiers en local entre deux sauvegardes, vous aurez une copie conforme sur votre serveur distant, donc les fichiers ou dossiers effacés en local le seront sur le serveur distant.

Votre choix aura de l'importance pour la suite quand à la commande à utiliser.


Envoyer ses premières données non chiffrées sur le serveur

Maintenant que le fichier config est terminé et que vous connaissez la différence entre copy et sync, nous allons tester si tout fonctionne.
Petit rappel, toutes mes applications Docker et mes données sont dans /srv/appdata. Je vais, pour me faciliter la vie, envoyer le dossier appdata (et non son contenu) sur le serveur distant.

Je vais donc utiliser la commande suivante pour copier le dossier local appdata dans le dossier home du serveur distant:

rclone copy --progress /srv/ belgibackup:/home
  • rclone copy => on fait appel à rclone avec la demande de copier.
  • --progress => affiche une progression du travail en cours.
  • /srv/ => j'indique que je veux copier le contenu de /srv, là ou se trouve appdata.
  • belgibackup => c'est le nom du remote créé.
  • /home => le dossier de destination ou sera envoyé les données.

Ce qui donne:

Et côté serveur je retrouve bien le dossier appdata dans /home:

Tout fonctionne!

Si d'aventure vous préférez une synchronisation parfaite, utilisez donc sync dans la commande:

rclone sync --progress /srv/ belgibackup:/home
💡
Si vous vous arrêtez ici, tout sera copié en clair sur le serveur distant. C'est un choix personnel à faire. Si vous désirez chiffer vos données, suivez le point suivant, qui est à faire en complément de ce que vous venez de faire.

Créer un fichier de config pour chiffrer vos données

Pour chiffrer vos données, il va falloir créer un nouveau remote, lancez la commande:

rclone config

Un menu se présente, tapez n et nommer votre nouveau remote, dans mon cas crypt:

Et choisissez l'option 13:

Répondez à quelques questions:

  • remote> => indiquez le nom du remote à chiffre, j'avais choisi comme non belgibackup, et indiquez ici le chemin ou seront stockées les données, dans mon cas j'avais choisi /home. Donc la réponse à indiquer sera: belgibackup:/home.
  • filename_encryption> 1 => choisissez la méthode de chiffrement pour les noms des fichiers ou encore, de ne pas chiffrer.
  • directory_name_encryption> 1 => choisissez la méthode de chiffrement pour les noms des répertoires ou encore, de ne pas chiffrer.

Ici il faut choisir deux mots de passe différents à la question Option password et Option password2:

Aux questions:

  • Edit advanced config? => n
  • Keep this "crypt" remote? => y

Et pour finir, taper q pour quitter:


Envoyer ses premières données chiffrées sur le serveur

Petite variante dans la commande, on va indiquer le remote chiffré, ici crypt, pour le reste, rien ne change:

rclone copy --progress /srv/ crypt:/home

Ce qui donne:

Du côté du serveur distant on constate que le nom du dossier, et les données, sont chiffrés:


Récupérer ses données facilement

Comment récupérer ses données? Et bien ce n'est pas compliqué, il suffit de mettre en premier le nom du remote suivi du dossier de destination:

rclone copy --progress crypt:/home /home/zarev

Lister les fichiers et répertoires du stockage distant avec rclone

Pour cela il faut utiliser la commande: rclone ls à partir du serveur qui contient vos données, ou vous avez installé rclone.

La commande doit-être suivie du nom du remote:

rclone ls crypt:

Ce qui donne:


Gérer Rclone avec une interface? Oui!

Il existe Rclone Browser, une application qui va vous permettre de gérer facilement vos données.

⚡Caractéristiques

  • Permet de parcourir et de modifier n'importe quelle remote rclone, y compris celles cryptées.
  • Utilise le même fichier de configuration que rclone, aucune configuration supplémentaire requise.
  • Prend en charge l'emplacement personnalisé et le cryptage pour le fichier de configuration rclone.conf.
  • Parcourez simultanément plusieurs référentiels dans des onglets séparés.
  • Répertorie les fichiers de manière hiérarchique avec le nom du fichier, la taille et la date de modification.
  • Toutes les commandes rclone sont exécutées de manière asynchrone, pas de gel de l'interface graphique.
  • La hiérarchie des fichiers est mise en cache paresseusement en mémoire, pour une traversée plus rapide des dossiers.
  • Permet de télécharger, de créer de nouveaux dossiers, de renommer ou de supprimer des fichiers et des dossiers.
  • Permet de calculer la taille du dossier, d'exporter la liste des fichiers et de copier la commande rclone dans le presse-papiers.
  • Peut traiter plusieurs tâches de téléchargement ou de téléchargement en arrière-plan.
  • Prise en charge du glisser-déposer pour faire glisser des fichiers depuis l'explorateur de fichiers local pour le téléchargement.
  • Streaming de fichiers multimédias pour la lecture dans un lecteur comme VLC ou similaire.
  • Monter et démonter des dossiers sur macOS, GNU/Linux et Windows (pour Windows nécessite winfsp et pour mac fuse pour macOS).
  • Réduit éventuellement dans la barre d'état, avec des notifications lorsque le téléchargement/téléchargement est terminé.
  • Prend en charge le mode portable (créer un fichier .ini à côté de l'exécutable du même nom), le chemin rclone et rclone.conf peut désormais être relatif à l'exécutable.
  • Prend en charge le partage de disque avec moi (spécifique à Google Drive)
    Pour les remotes prenant en charge le partage de liens publics, il existe une option (menu contextuel) pour le récupérer.
  • Prend en charge les tâches. Les tâches créées peuvent être enregistrées et exécutées ou modifiées ultérieurement.
  • Mode sombre configurable pour tous les systèmes.

Télécharger la version de Rclone Browser correspondant à votre système d'exploitation

Releases · kapitainsky/RcloneBrowser
Simple cross platform GUI for rclone. Supports macOS, GNU/Linux, BSD family and Windows. - kapitainsky/RcloneBrowser

Localiser le rclone.conf

Tapez cette commande sur votre serveur local:

rclone config file

Ce qui donne:

Configurer Rclone Browser

Ce n'est pas bien difficile. Maintenant que vous savez ou se trouve votre rclone.conf, soit vous faites une copie de votre fichier ou vous créez un rclone.conf à un endroit ou vous vous souviendrez qu'il est.

Une fois que c'est fait, lancez Rclone Browser, en haut à gauche cliquez sur File et ensuite Preferences et dans la partie rclone.conf location, indiquez lui ou se trouve rclone.conf.

Validez en cliquant sur OK:

Une fois que c'est terminé, vous verrez le remote non chiffré et celui chiffré:

Double clic sur crypt, par exemple:

Vous pourrez naviguez dans vos données, même chiffrées vu que vous avez le rclone.config:

En faisant clic droit sur un fichier ou un dossier, vous pourrez le télécharger. Mais pas que, il y a pas mal d'options. Je vous laisse les découvrir à votre aise.


Automatiser la sauvegarder avec cron

Petite astuce si vous voulez que tout cela se fasse automatiquement à une heure précise.
On va faire appel à Cron.

Il faut éditer Cron, tapez cette commande...

crontab -e

... et choisir la première option:

En bas du fichier, vous ajoutez 00 00 * * * suivi d'un espace et votre commande préférée:

Dans cette configuration, tous les jours à minuit, la synchronisation va débuter.

Vous pouvez changer les heures, voici un site qui vous permet de configurer ça à votre guise:

Crontab.guru - The cron schedule expression generator
An easy to use editor for crontab schedules.

zarev

🐧 Passionné de self-hosting, je partage ce que je connais et me nourris des connaissances des bonnes âmes qui partagent avec moi. Soutenons l'utilisation des apps open source et leurs développeurs.