Comment sauvegarder/archiver un répertoire avec RCLONE ?

Quelle est la mystérieuse ingénierie qui me permet d’obtenir un serveur Linux fiable et performant, sans devoir monter la garde jour et nuit ?

RClone est un outil en ligne de commande pour copier ou synchroniser des répertoires distants ou locaux à travers différents systèmes de stockage : FTP, SCP, WEBDAV, AWS, Cloud Archive (Openstack), Cold Archive (S3)…

1. Sauve-qui-peut !

Tu ne possèdes aujourd’hui aucune sauvegarde, même minimaliste ?

Tu souhaites avoir un niveau de sauvegarde supplémentaire chez un autre hébergeur ?

Tu as besoin d’archiver des données sur du long terme mais avec un coût moins élevé ?

Alors RCLONE est l’outil idéal !

2. La vidéo de présentation

J’ai enregistré une vidéo dans laquelle je parle de RCLONE et je montre un cas d’usage en rapport avec cet article :

3. Téléchargement / Installation

Pour télécharger RCLONE, il faut se rendre ici : https://rclone.org/downloads/ puis télécharger le bon package pour son système. Mais je suppose pour la suite que tu utilises un « vrai » système destiné aux administrateurs systèmes Linux, à savoir Linux Debian ou dérivées.

Clique ici sur ce lien direct pour télécharger RCLONE pour Debian

Ensuite, tu l’installes sur ton système ou le serveur qui devra utiliser RCLONE.

4. (NOUVEAU) Création d'un espace d'archivage long terme du COLD Archivage du Public Cloud d'OVH

Dans le manager OVH, il faut se rendre l’espace Public Cloud, créer un projet si besoin puis démarrer la création d’une Cold Archive :

On lance alors la création de notre espace d’archivage :

On crée un utilisateur pour le nouvel espace qu’on va créer :

On donne la description “rclone” pour le repérer facilement à l’avenir :

Un utilisateur est créé et on sauvegarde les paramètres dans notre gestionnaire de mot de passe (keepassxc) :

On donne un nom au conteneur :

Voilà, cette partie est finie mais on garde la fenêtre ouverte, on va en avoir à nouveau besoin dans un instant :

5. Configuration de RCLONE pour accéder au COLD Archive

En ligne de commande sur ton PC ou sur ton serveur, tu vas configurer les paramètres d’accès au COLD Archive :

				
					rclone config
				
			

Ce qui donne en sortie quelque chose comme :

				
					Current remotes:

Name                 Type
====                 ====
...

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q>
				
			

On lance la configuration de l’accès au COLD Archive :

				
					e/n/d/r/c/s/q> n
name > BunkerOVH
				
			

On choisit le type de storage 4 et le provider 13 :

				
					4 / Amazon S3 Compliant Storage Provider (AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, Tencent COS, etc)
   \ "s3"
Storage> 4
13 / Any other S3 compatible provider
   \ "Other"
provider> 13
				
			

On configure les accès en mettant les accès sauvegardés dans ton keepassxc (ou ailleurs) :

				
					...
Choose a number from below, or type in your own value
 1 / Enter AWS credentials in the next step
   \ "false"
env_auth> 1

AWS Access Key ID.
...
Enter a string value. Press Enter for the default ("").
access_key_id> xxxxxxxxxxxxxxxxxxxxxxxxxxxx
...
AWS Secret Access Key (password)
...
Enter a string value. Press Enter for the default ("").
secret_access_key> yyyyyyyyyyyyyyyyyyyyyyyyyyy
				
			

On retourne sur la fenêtre du manager OVH (mais on garde la console à côté) :

On clique pour regarder l’URL et la région du conteneur qu’on reporte plus bas dans la console :

				
					Region to connect to.
...
Enter a string value. Press Enter for the default ("").
...
region> rbx-archive
Endpoint for S3 API.
...
Enter a string value. Press Enter for the default ("").
...
endpoint> https://s3.rbx-archive.io.cloud.ovh.net/
...
Enter a string value. Press Enter for the default ("").
location_constraint>
Choose a number from below, or type in your own value
 1 / Owner gets FULL_CONTROL. No one else has access rights (default).
   \ "private"
acl> 1
				
			

On finalise la configuration n°1 (il faudra en faire une autre pour activer le chiffrement) :

				
					Edit advanced config? (y/n)
y) Yes
n) No (default)
y/n> n
--------------------
[BunkerOVH]
provider = Other
env_auth = false
access_key_id = xxxxxxxxxxxxxxxxxxxxxxxxxxxx
secret_access_key = yyyyyyyyyyyyyyyyyyyyyyyyyyy
endpoint = https://s3.rbx-archive.io.cloud.ovh.net/
acl = private
region = rbx-archive
--------------------
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y
Remote config
Current remotes:

Name                 Type
====                 ====
BunkerOVH            s3
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q
				
			

On peut tester la configuration en ligne de commande :

				
					rclone lsd BunkerOVH:
				
			

On obtient (par exemple) et on voit le conteneur :

				
					-1 2023-02-24 18:47:37        -1 bunkerovh
				
			

REMARQUE IMPORTANTE : chez d’autres hébergeurs S3, la connexion peut arriver directement à l’intérieur du conteneur. Il faudra donc ajuster les chemins par la suite.

6. Configuration de RCLONE pour activer le chiffrement d'un sous-répertoire

				
					rclone config
				
			

On configure un nouvel accès :

				
					Current remotes:

Name                 Type
====                 ====
BunkerOVH            s3

e/n/d/r/c/s/q> n
name> BunkerOVH_enc
				
			

On choisit cette fois le Storage 10 :

				
					10 / Encrypt/Decrypt a remote
   \ "crypt"
Storage> 10
Remote to encrypt/decrypt.
Normally should contain a ':' and a path, eg "myremote:path/to/dir",
"myremote:bucket" or maybe "myremote:" (not recommended).
Enter a string value. Press Enter for the default ("").
remote> BunkerOVH:bunkerovh/enc/
				
			

On configure comment chiffrer :

				
					How to encrypt the filenames.
Enter a string value. Press Enter for the default ("standard").
Choose a number from below, or type in your own value
 1 / Encrypt the filenames see the docs for the details.
   \ "standard"
filename_encryption> 1
...
Choose a number from below, or type in your own value
 1 / Encrypt directory names.
   \ "true"
directory_name_encryption> 1
...
Password or pass phrase for encryption.
y) Yes type in my own password
g) Generate random password
y/g> g 
Password strength in bits.
64 is just about memorable
128 is secure
1024 is the maximum
Bits> 128

Your password is: xxxxxxxxxxxxxxxxxx
...
y) Yes (default)
n) No
y/n> y

Password or pass phrase for salt
...
y) Yes type in my own password
g) Generate random password
n) No leave this optional password blank (default)
y/g/n> g
Password strength in bits.
64 is just about memorable
128 is secure
1024 is the maximum
Bits> 128
Your password is: yyyyyyyyyyyyyy
...
y) Yes (default)
n) No
y/n> y
				
			

On finalise la configuration :

				
					Edit advanced config? (y/n)
y) Yes
n) No (default)
y/n> 
Remote config
--------------------
[BunkerOVH_enc]
remote = BunkerOVH:bunkerovh/enc/
password = *** ENCRYPTED ***
password2 = *** ENCRYPTED ***
--------------------
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y
Current remotes:

Name                 Type
====                 ====
BunkerOVH            s3
BunkerOVH_enc        crypt

q) Quit config
e/n/d/r/c/s/q> q
				
			

7. On teste la copie d'un fichier

En ligne de commande toujours, on teste pour voir si ça marche, j’ai testé avec un fichier “package.json” :

				
					rclone copy package.json BunkerOVH_enc:
rclone ls BunkerOVH_enc:

				
			

8. Exemple de script de sauvegarde/archivage

Voici un exemple de script à adapter pour archiver/sauvegarder un ou des répertoires en lignes :

				
					#!/bin/bash

SRC_DIR=/media/yyyy/xxxxxxxxxxxxxxxxxx/@archive/

for arch_dir in BZ Archivage; do
    rclone sync -P --transfers 20 --skip-links --no-update-modtime ${SRC_DIR}${arch_dir} BunkerOVH_enc:archive/${arch_dir}
done
				
			

Pour rappel, voici la vidéo associée à cet article :

Quelle est la mystérieuse ingénierie qui me permet d'obtenir un serveur Linux fiable et performant, sans devoir monter la garde jour et nuit ?