Comment mettre en place une synchronisation chiffrée et hors site de mes sauvegardes vers Proton Drive avec rclone — installation, configuration du remote, et intégration non-bloquante.

Pourquoi une deuxième sauvegarde, hors site ?

Ma sauvegarde principale repose sur Restic : chaque nuit, un cron effectue les dumps (bases de données, configuration, volumes applicatifs), puis pousse tout ça en SFTP vers un serveur secondaire de sauvegarde, avec une politique de rétention 7 jours / 4 semaines / 3 mois.

Le problème : cette copie reste dans le même logement que le serveur principal. Incendie, vol, dégât des eaux, panne simultanée des deux machines — et l'historique de sauvegarde disparaît avec. Il fallait une copie hors site, automatique, et chiffrée de bout en bout sans dépendre d'un fournisseur qui scanne mes données. Direction Proton Drive, et donc rclone pour faire le pont entre le stockage local et le cloud.

Installer rclone (pas via apt)

Le paquet rclone disponible via apt sur Ubuntu/Debian est souvent bloqué sur une version ancienne (ex. 1.60.x). Or le backend Proton Drive n'existe que depuis rclone v1.64. Avec la version du dépôt, le remote se configure mais échoue silencieusement à l'authentification.

Solution : utiliser le script d'installation officiel, qui installe toujours la dernière version stable :

curl https://rclone.org/install.sh | sudo bash
rclone version

Configurer le remote Proton Drive

rclone propose un assistant interactif de configuration :

rclone config

Déroulé de l'assistant pour créer le remote Proton Drive :

Étape Réponse
n) New remoteChoisir n
nameprotondrive-backup
Storagechercher protondrive dans la liste
usernameadresse email du compte Proton
passwordmot de passe du compte (saisie masquée y/g)
2FAcode TOTP si l'authentification à deux facteurs est activée
mailbox passworduniquement si un mot de passe de boîte mail distinct est configuré (comptes avec chiffrement d'adresse séparé) — sinon laisser vide

Une fois le remote créé, on vérifie que la connexion fonctionne et que le dossier cible existe :

rclone lsd protondrive-backup:
rclone mkdir protondrive-backup:backups/serveur

Configurer le remote source (SFTP)

Le contenu à synchroniser vit sur le serveur secondaire de sauvegarde, accessible en SSH avec une clé dédiée (pas de mot de passe). On déclare un second remote de type sftp :

rclone config create serveur-sftp sftp \
  host=serveur-secondaire \
  user=backup \
  port=22 \
  key_file=/root/.ssh/backup_key

Test de lecture :

rclone lsd serveur-sftp:/media/backups

La commande de synchronisation

rclone sync serveur-sftp: protondrive-backup:backups/serveur \
  --transfers=4 \
  --checkers=8 \
  --log-file=/var/log/rclone-sync.log \
  --log-level=INFO

Explication des options :

  • sync (et non copy) : rend la destination identique à la source, y compris en supprimant côté Proton Drive les fichiers qui n'existent plus côté source (utile pour respecter la rétention déjà appliquée par Restic en amont).
  • --transfers / --checkers : parallélisme des transferts et des vérifications, à ajuster selon la bande passante disponible.
  • --log-file : trace chaque exécution pour pouvoir diagnostiquer un échec a posteriori sans dépendre uniquement du code de retour.

Intégration non-bloquante dans le script de sauvegarde

Contrairement au restic backup vers le serveur secondaire (qui est fatal — un échec stoppe le script et déclenche une alerte), le rclone sync vers Proton Drive est volontairement non-bloquant :

rclone sync serveur-sftp: protondrive-backup:backups/serveur \
  --log-file=/var/log/rclone-sync.log \
  || log "WARN: échec de la synchronisation Proton Drive, sauvegarde locale non affectée"

La logique : la sauvegarde locale a déjà réussi au moment où ce sync s'exécute. La copie cloud est un filet de sécurité supplémentaire, pas le premier rempart — son échec ponctuel (Proton Drive indisponible, quota, réseau) ne doit pas déclencher une fausse alerte critique de "sauvegarde non effectuée".

Fréquence

Ce sync tourne désormais tous les jours, juste après la sauvegarde Restic principale — auparavant limité à une fois par semaine. Objectif : réduire la fenêtre de perte de données en cas de problème sur le serveur secondaire entre deux exécutions.

Ce que ça change concrètement

  • Chaque donnée sauvegardée existe désormais en trois copies : serveur principal (source), serveur secondaire (Restic, dédupliqué), Proton Drive (rclone, hors site).
  • Aucune donnée ne transite en clair vers un tiers non chiffré : Proton Drive chiffre côté client.
  • Le coût opérationnel est quasi nul — une ligne de cron en plus, pas de nouveau service à maintenir.

Prochaine étape possible : exposer une métrique dédiée sur l'âge du dernier sync Proton Drive réussi (extraite du fichier de log), pour la surveiller au même titre que la sauvegarde Restic principale.

Étiquettes