6 minutes de lecture

Sauvegarder Dropbox sur un cloud avec rclone

Sommaire

La stratégie de départ

Depuis un moment, ma stratégie de backup est la suivante :

  1. La plupart de mes fichiers sont dans Dropbox (déjà ça aide)
  2. Je fais un clone local tous les soirs sur un disque externe avec SuperDuper
  3. Je double tout ça d’une sauvegarde cloud via Arq Backup avec versionning (50$ par an pour 1 To, je recommande ++ )

Ayant déjà briqué mon mac bêtement, je peux confirmer l’intérêt du clone local : on redémarre de suite, sans tout avoir à télécharger.

Sauf que des fois, le disque n’est pas branché ou pas tout à faire à jour. Cela m’est aussi arrivé, et avec Dropbox ou Arq, on retombe assez vite sur ses pieds.

Sauf qu’il y a un trou dans la raquette : tous mes fichiers Dropbox ne sont pas physiquement présents sur mon mac. Donc ils ne sont pas sauvegardés ailleurs ; ni via Arq, ni via le clone. Et ça c’est mal…

Si ma Dropbox s’efface (bug logiciel, crytoLocker, soyons fou), qu’est-ce qui se passe ?

Normalement, je me dis que le versionning de Dropbox devrait suffire, mais ce n’est pas totalement rassurant.

J’ai appris récemment d’ailleurs qu’aucun outils Cloud ne le garantit. C’est à l’utilisateur / au client de mettre en place lui-même des backups des fichiers hébergés sur ces clouds (De Google Drive à Office 365 ou ERP / CRM).

Donc mon cahier des charges : un outil pour faire une sauvegarde de l’intégralité de ma dropbox, vers un fournisseur Cloud, sans que cela ne coûte un rein.

rclone pour faire du cloud to cloud

Le logiciel à utiliser, c’est clairement rclone.

Déjà parce qu’il gère nativement la plupart des fournisseurs de cloud, et surtout parce qu’il permet de faire du cloud to cloud. Si je le lance sur ma machine, il ne va pas tout télécharger en local pour ensuite l’uploader sur le serveur de destination. Seulement indiquer au serveur concerné de le faire directement.

Les performances et les débits n’ont donc rien à voir :)

Server Side Copy

Most remotes (but not all - see the overview) support server-side copy. This means if you want to copy one folder to another then rclone won’t download all < > the files and re-upload them; it will instruct the server to copy them in place.

Source

Gros bonus, il est Open Source.

Où stocker ses sauvegardes cloud ?

Pour le stockage, j’ai choisi d’utiliser de l’Object Storage, le standart pour ce type d’usage. On trouve facilement des fournisseurs et à bon prix.

En France, OVH, Scaleway en propose entre 5 et 10€ le To / mois (Amazon S3 est plus cher).

Le prix dépend principalement des frais de sortie des données (download ou egress). Dans notre cas, on n’est pas censé télécharger ses backups chaque semaine donc l’impact sera faible surla tarif.

J’ai choisi d’utiliser l’Object Storage R2 de CloudFlare. Au même niveau de tarifs, et j’aime bien leurs produits.

Pour 500 Go synchronisé, on parle de 7 à 8$ mensuels (calcul de prix ici )

Sauvegarde de sa dropbox vers un object storage compatible S3

Après avoir installé rclone, il faut configurer les 2 stockages “remote”

La commande rclone config guide pas à pas, la doc est complète au besoin.

Ensuite, il suffit de lancer cette commande :

  rclone sync dropbox:Mon_dossier cf-r2:nom-du-bucket/ --dropbox-batch-mode sync

Ici dropbox et cf-r2 sont les noms que j’ai donné lors de l’étape de config initiale.

Et c’est tout ! Il n’y a plus qu’à programmer la commande chaque jour via une tâche cron, par exemple :

0 12 * * 1-5 /opt/homebrew/bin/rclone sync dropbox:Mon_dossier cf-r2:nom-du-bucket/ --transfers 12 --tpslimit 12 >> ~/Desktop/rclone_sync.log 2>&1

Synchro chaque midi du lundi au vendredi, et log sur le Bureau

⚠️ À noter : pour ne pas se faire bloquer par Dropbox (erreur too_many_requests), j’ai dû ajouter les commandes --transfers 12 --tpslimit 12 (voir ici)

Je suis en train de voir si le mode sync est le plus pertinent, étant donné qu’il implique beaucoup d’opérations de lecture à chaque fois, alors que simplement copy pourrait faire le job.

Quelques commandes rclone utiles

Lister les fichiers de moins de 30 jours :

rclone lsl dropbox:Mon_dossier/ --max-age 30d

Supprimer les fichiers de plus de 30 jours:

rclone -nv delete dropbox:Mon_dossier/ --min-age 30d  

-nv permet de faire un test avant (dry-run) avec un log “verbeux”. À retirer pour la vraie commande mais plus safe de faire un test avant :)

La commande ci-dessus ne supprime pas les dossiers vides, pour ça il faut utiliser :

rclone -nv rmdirs dropbox:Mon_dossier/ --min-age 30d  

Backup externe de mes base de données et serveurs

Je suis en train de déployer la même logique pour les serveurs et bdd.

Là encore, grace aux capacités server to server, je lance en local, pas besoin d’installer rclone sur chaque serveur (et ce n’est pas possible sur un mutu ou une instance cloud de toute façon).

Cette approche offre une bonne protection contre un hack ou un disque chiffré, car les infos de connexion ne sont pas sur la machine infectée.

Pour ce cas, j’utilise le connecteur sFTP ou FTP, pour faire une copie des fichiers vers un cloud quelconque.

Remerciements et liens complémentaires

Merci Nico de m’avoir remis le nez dedans 😁

Et merci aux auteurs de ces 2 articles :