Ma stratégie de backup
Ma stratégie de backup en quelques mots
Pas la peine de revenir ici sur l'intérêt qu'il y a à backuper les données de ses ordinateurs à la maison (risque de crash, d'erreur de manipulation, de vol, incendie, etc). Pendant plus d'une dizaine d'années, ma stratégie de backup a consisté à sauvegarder mes data localement sur un NAS synology, puis à synchroniser ce NAS avec un autre NAS, installé ailleurs. Cela me garantissait d'avoir un backup de mes data en dehors de mon appartement. Cette solution avait pas mal d'avantages (principalement: des coûts fixes, et rien sur le cloud) mais aussi des inconvénients:
- il faut au moins 2 NAS pour faire ces backups en autonomie (dans mon cas, 2 synology mais d'époques différentes, donc sans les mêmes version de soft DSM)
- l'implémentation rsync sur Synology, c'est parfois laborieux: je l'ai découvert à mes dépens quand un des NAS a commencé à ne plus récupérer la bonne date/heure par le protocole NTP. Du coup le NAS se mettait dans une date factice, décalée avec mes ordinateurs. Ainsi lorsque je lançais mes backups, l'utilitaire de synchro rsync pensait que tous les fichiers étaient différents, puisque créés à des dates différentes...
Bref, depuis quelques jours je teste une nouvelle solution de backup : l'utilitaire rclone
couplé à une solution de stockage "perpétuelle" dans le Cloud (pcloud.com).
RCLONE
rclone est un utilitaire multiplateforme, qui permet de lancer des commandes de copie ou de synchronisation entre une source et une destination. La destination (et/ou la source) pouvant en particulier être des solutions de stockage dans le cloud (Google drive, dropbox, pcloud, etc). Le premier intérêt, c'est donc de pouvoir envoyer des ordres de backup de fichiers, sans passer par une interface graphique (le site web de dropbox par exemple) ni un logiciel tiers (google drive, par exemple). Le second intérêt, c'est que rclone embarque une option crypto qui permet non seulement de backuper ses fichiers dans le cloud, mais aussi de les chiffrer à la source avant de les envoyer dans le cloud.
Pour mettre en place rclone il faut installer le soft (rclone.org) puis générér un fichier de config en lançant
rclone config
Là on donne un nom à sa configuration ('pcloudremote' dans mon cas, pour signifier que mon backup 'remote' est chez pcloud). Ensuite on peut créer une deuxième configuration, en "overlay" à la première, pour créer une configuration "chiffrée".
Dans mon cas, je relance donc la commande rclone config, je crée une nouvelle configuration ('pcloudremote_crypt'), de type 'crypt', et qui s'appuie sur la précédente config (donc en indiquant par exemple pcloudremote:/Secured, pour indiquer que cette configuration chiffrante doit s'appuyer sur la configuration pcloudremote, et déposer tous les fichiers dans le sous répertoire Secured).
La configuration demande ensuite si on veut chiffrer les noms des fichiers et des répertoires (j'ai choisi non, pour une raison simple: même si mes fichiers seront chiffrés dans le cloud, je veux pouvoir aller voir les arborescence dans l'interface web; si tous les noms de fichiers étaient eux-mêmes cryptés, impossible de savoir si tel ou tel fichier est bien dans le cloud, ni de récupérer celui qui m'intéresse).
Ensuite, l'outil demande de saisir une "passphrase" qui va servir à chiffrer les fichiers, ainsi qu'un éventuel "salt" pour améliorer la sécurité des clés de chiffrement. Personnellement, j'ai saisi ma passphrase mais je n'ai pas ajouté de "SALT".
J'ai donc un niveau de sécurité moindre, mais l'avantage est le suivant: si je dois récupérer des fichiers importants sans mes ordis sous la main, je peux le faire. Il me "suffit" en effet sur un ordinateur tiers d'installer rclone, de refaire les configs précédentes (la seule chose dont j'aie besoin, c'est pouvoir me loguer à l'interface pcloud.com et me souvenir de ma passphrase). Je ne suis pas non plus tenu de sauvegarder avec précautions mon fichier de config rclone, puisque je peux le reconstituer quand je veux.
Au final, mon fichier de config rclone ressemble à ça (pour voir son fichier de config, il suffit de taper rclone config show)
rclone config show
[pcloudremote]
type = pcloud
hostname = eapi.pcloud.com
token = {"access_token":"********","token_type":"bearer","expiry":"0001-01-01T00:00:00Z"}
[pcloudremote_crypt]
type = crypt
remote = pcloudremote:/Secured
filename_encryption = off
directory_name_encryption = false
password = ************
Quelques commandes rclone utiles
Pour voir l'espace disque restant sur son remote:
rclone about pcloudremote:
On peut créer des répertoires (mkdir) ou déplacer des fichiers ou répertoires (move). Chez certains providers de Cloud, déplacer un répertoire consiste à le rapatrier en local puis à le ré-uploader vers le Cloud. Avec pcloud par exemple, ce déplacement se faire sans consommer de bande passante (pas "d'aller retour", car pcloud supporte l'implémentation "MovDir" de rclone).
Par exemple
rclone move -P pcloudremote:Dir1 pcloudremote:Dir2/Dir1
Déplace le répertoire Dir1 vers Dir2/Dir1. Et le "-P" qui indique les octets transférés confirme que le déplacement de répertoire s'est réalisé sans télécharger d'octets: tout s'est fait à distance.
On peut voir la taille et le nombre d'objets avec size
rclone size pcloudremote_crypt:
Dans le doute il vaut toujours mieux avant une synchro ou une commande sensible, ajouter l'option --dry-run qui permet un "test à blanc"
rclone sync --dry-run MyDir pclouderemote_crypt:MyDir
Enfin, on peut passer en commande un fichier de pilotage de son backup, dans l'hypothèse ou on ne veut pas backuper la totalité de ses données mais une sélection.
rclone sync -P --filter-from filtre_rclone.txt . pcloudremote_crypt:
Cette commande synchronise le répertoire local ('.') vers la racine de pcloudremote_crypt: en fonction du contenu du fichier de filtrage passé en paramètre. Le fichier de configuration est parcouru hiérarchiquement (ainsi dans l'exemple ci-dessous, on ne backupe pas les fichiers qui s'appellent .DS_Store, et dans le répertoire Maison on ne backupe QUE le sous répertoire "important')
# mon fichier
- .DS_Store
+ /Graphisme/**
+ /Administratif/**
+ /Maison/important/**
# exclude everything else
- *
Comment récupérer un fichier sauvegardé ?
En utilisant une configuration "chiffrante" de rclone, les fichiers sont synchronisés après chiffrement dans le cloud. Après les avoir chiffrés, rclone préfixe les fichiers avec un ".bin" Le fait de ne pas avoir choisi de chiffrer les nomd de dossiers et de fichiers me permet de naviguer dans les fichiers depuis l'interface pcloud.com, comme je pourrais le faire avec dropbox ou google drive. Pour autant quand je choisis un fichier (par exemple une photo) ce dernier ne peut pas être visualisé dans l'interface (et pour cause, il est chiffré).
Pour récupérer un fichier ou un répertoire, je dois donc passer par rclone, et "rappatrier" ces fichiers chiffrés localement.
Par exemple
rclone copy pcloudremote_crypt:/Rep1/Rep2/ LocalRep2
rappatrie le contenu de Rep2 et le stocke localement dans le repertoire LocalRep2, déchiffré.
Si on ne veut rappatrier qu'un seul fichier, on passe la commande sans ajouter le ".bin". Par exemple si je veux récupérer le fichier sauvegardé toto.jpg.bin (qui était toto.jpg avant d'être chiffré par rclone), je dois faire
rclone copy pcloudremote_crypt:/Rep1/Rep2/toto.jpg .
Et pourquoi pcloud ?
Toutes les manipulations décrites ici avec rclone fonctionnent avec une bonne trentaine de fournisseurs de cloud. Si j'ai choisi pcloud, c'est parce qu'il est un des rares à proposer une offre de stockage "perpétuelle". C'est à dire un abonnement à vie et pas un loyer mensuel ou annuel. Alors certes, on peut se dire que rien n'est perpétuel avec Internet, mais si cette société est encore là dans 3 ou 4 ans, l'offre perpétuelle reste une bonne affaire.
Si vous voulez vous renseigner sur cette offre, en cliquant sur www.pcloud.com/welcome-to-pcloud/ vous pourrez me faire profiter d'une offre parrainage :-)