Comment sauvegarder Synology NAS sur pCloud avec rclone

Je vous propose un petit tutoriel pour sauvegarder votre NAS Synology sur la solution pCloud.

Qu’est-ce que pCloud ?

pCloud est un espace cloud personnel pour le stockage de tous vos fichiers et dossiers. Il a une interface conviviale montrant clairement où tout se trouve et ce qu’il fait. Le logiciel est disponible pour presque tous les appareils et plates-formes – appareils iOS et Android, MacOSX, Windows OS et toutes les distributions Linux.

L’application crée un lecteur virtuel sécurisé qui étend votre espace de stockage local en installant pCloud sur votre ordinateur (via son application de bureau, pCloud Drive). Chaque modification que vous apportez à votre pCloud peut être vue immédiatement sur votre ordinateur, votre téléphone ou votre tablette. Tous vos appareils sont synchronisés de de manière instantanée et vous avez un accès direct aux fichiers pour toute mise à jour que vous effectuez.

Comment sauvegarder Synology NAS sur pCloud avec Rclone

Rclone est un outil en ligne pour la gestion des fichiers sur le stockage en ligne. Il a des fonctionnalités et se charge de plus de 40 solutions de stockage dans le cloud, telles que les magasins d’objets S3, les services de stockage de fichiers grand public et commerciaux et les protocoles de transfert courants tels que FTP. Les utilisateurs se réfèrent souvent à Rclone comme « le couteau suisse du stockage en nuage » et « une technologie indiscernable de la magie ».

Pour sauvegarder un Synology NAS sur pCloud avec Rclone, suivez les instructions ci-dessous :

Étape 1: Activer l’accès SSH

Sur votre Synology NAS, vous devez d’abord activer l’accès SSH. Pour ce faire, connectez-vous puis accédez à Panneau de configuration DSM > Terminal & SNMP > Terminal. Activez le service SSH.

Étape 2: Installer Rclone

Une fois le SSH utilisé pour vous connecter à votre Synology NAS, vous devez obtenir l’accès root en tapant les commandes suivantes dans le Terminal :

admin@mynas:/$ sudo su -
Mot de passe:
root@mynas :~#

Vous devez ensuite obtenir le script d’installation de Rclone à partir de là :

wget https://rclone.org/install.sh

Avec les autorisations définies :

chmod +x install.sh

La dernière étape est l’installation de Rclone :

./install.sh

Étape 3: Configurer Rclone

Pour récupérer le token pCloud, le plus simple est de faire une installation sur son ordinateur (dans  notre exemple un mac, mais cela fonctionne aussi avec Linux ou WSL sous Windows) et récupérer le fichier de configuration que l’on copiera sur son NAS

brew install rclone
rclone config

On sélectionne ensuite les options suivantes :

-Remote : New remote (n)

-Name : pcloud

Il faut ensuite indiquer le type de stockage. Ca change un peu selon les versions de rclone, pour moi pCloud était au numéro 38 mais je vous encourage à vérifier dans la liste.

-Client_id : ne rien mettre

-Client_secret : ne rien mettre

-Edit advanced config : No (n)

-Use auto config : Yes (y)

A ce moment là, votre navigateur devrait automatiquement ouvrir la page d’autorisation de pCloud. Dans le cas contraire, un lien vous est fourni dans le terminal que vous devez copier/coller dans la barre d’adresse du navigateur ouvert précédemment.

Le terminal va récupérer automatiquement le code et vous pouvez répondre « Yes this is OK » (y) à la dernière question.

On quitte la configuration de rclone avec la réponse (q) puis on va récupérer le contenu du fichier de config :

cat .config/rclone/rclone.conf 
[pcloud]
type = pcloud
hostname = eapi.pcloud.com
token = {"access_token":"UNE_LONGUE_SUITE_DE_CARACTERES","token_type":"bearer","expiry":"0001-01-01T00:00:00Z"}

Retour sur le NAS en SSH, on va s’assurer que rclone a créé sa config (vide) et la créér si ce n’est pas le cas avec la commande touch :

rclone config touch

On va ensuite éditer cette config à l’aide de l’utilitaire VI pour y copier la configuration effectuée sur le mac :

vi .config/rclone/rclone.conf

Et y insérer le contenu.

Étape 4: Tester la configuration Rclone

On va pouvoir tester que tout fonctionne avec la commande suivante (qui va lister les répertoires de pCloud, indiquant donc une connexion fonctionnelle)

rclone lsd pcloud:

NB : rclone interroge l’espace distant avec le chemin pcloud:dossier (avec des guillemets en cas de présence d’espace)

exemple : pcloud:"Automatic Upload/iPhone/" correspond au répertoire dans lequel le client pCloud sur mon téléphone pousse automatiquement les photos et vidéos de l’appareil.

Etape 5: Sauvegarder la configuration

Synology supprime ces changements lors des mises à jour, il faut donc sauvegarder la configuration de rclone dans un autre dossier (qu’on pourra appeler ensuite lors de la synchronisation). L’installation de rclone sera peut-être également à refaire (voir l’exécution du script install.sh en début de tuto).

Nous allons copier la configuration dans un dossier du NAS (je vous laisserai modifier les chemins selon votre installation, le dossier doit exister préalablement. Toujours sur le NAS en SSH :

cp .config/rclone/rclone.conf /volume1/nas/rclone/rclone.conf

ETAPE 6: Synchronisation de rclone

On va ensuite commencer à mettre en place la synchronisation. J’utilise la commande « rclone sync » qui permet de répercuter les changements effectués en local sur le NAS sur pCloud (seule la destination est modifiée, pas la source, afin d’éviter les pertes de données). Ce n’est pas à proprement parler une sauvegarde, l’idée est d’avoir un miroir en cas de problème (vol ou incendie par exemple)

Pour ce tuto, on va vouloir synchroniser le dossier du NAS /volume1/nas/important vers le dossier pCloud Backups/Nas/Important

Comme on va utiliser une planification, on veut avoir un suivi via des logs, qu’on enregistrera sur le NAS dans /volume1/nas/rclone/journal.log

Tous ces chemins sont évidemment à adapter à votre environnement.

On va donc utiliser la commande suivante :

rclone --config /volume1/nas/rclone/rclone.conf sync /volume1/nas/important pcloud:Backups/Nas/Important -v --log-file=/volume1/nas/rclone/journal.log --exclude "*{@eaDir/,Thumbs.db,.DS_Store}*" -P --dry-run

Explication des flags:

--config : Permet d’aller chercher la config (qui a été déplacée précédemment au cas où le NAS efface le fichier lors d’une mise à jour)

-v permet de logger les entrées INFOS, WARNING, ERROR (il manque que le DEBUG qui se récupère avec -vv si besoin)

--log-file : indique le chemin du fichier de log

--exclude "*{@eaDir/,Thumbs.db,.DS_Store}*" : Ca c’est pour moi, je n’ai pas besoin d’avoir les différents dossiers et fichiers cachés créés par DSM, Windows ou MacOS dans mon miroir ^^

-P permet d’afficher la progression, très utile lors de la mise en place des commandes pour vérifier que tout se passe comme prévu

--dry-run : Permet de ne pas faire de changement « pour de vrai » (encore une fois c’est une sécurité le temps de mise en place de la synchro)

Une fois satisfait du déroulement de la commande, on peut enlever le --dry-run et la relancer, qui permettra de faire un premier upload et de vérifier grâce au flag -P que tout s’est bien passé.

Cette commande modifie uniquement la destination, laissant la source et la destination inchangées. La source et la destination sont synchronisées en changeant simplement la destination. Il ne transfère pas les fichiers identiques entre les sources et les destinations et effectue des vérifications de taille et de temps de modification.

Il convient de noter que les fichiers de la destination ne seraient pas détruits s’il y avait des erreurs à n’importe quelle phase.

ETAPE 7 : Planifier la synchronisation dans le Synology

Sur l’interface de DSM, on va dans Panneau de configuration > Planificateur de tâches

Créer > Tâche planifiée > Script défini par l’utilisateur

On va ensuite lui donner un nom et définir l’utilisateur qui va lancer la tâche de façon automatique.

Dans l’onglet programmer, on définit la période de synchronisation (j’ai défini celle-ci sur tous les jours à 1h du matin)

Et enfin dans Paramètres de tâche on va coller la commande en enlevant les flags -P et --dry-run qui ne servent à rien dans ce contexte. J’ai pour ma part défini un envoi de mail lorsque la tâche plante, mais c’est à l’appréciation de chacun :

Il restera à exécuter la tâche manuellement (ou attendre la prochaine exécution automatique) pour s’assurer en vérifiant le fichier de log que tout se passe comme prévu, et voilà 🙂

 

Conclusion

Presque tous les utilisateurs utilisent Synology NAS comme serveur de stockage par défaut. Cependant, il est fortement conseillé de sauvegarder votre Synology NAS sur pCloud à cause de circonstances désastreuses inévitables, . Ce guide vous apprend à le faire avec Rclone, ainsi qu’une description de ce qu’est pCloud.

Ce tutoriel peut très bien être transposé à toute autre solution de NAS (OpenMediaVault, TrueNAS Core, …) ou de serveurs (Proxmox, …) pour vos backup.