
L’idée du jour : faire une sauvegarde automatique de mes données vers mon espace cloud (Nextcloud). Sûr de moi et surtout en mode no prise de tête, j’opte pour monter le répertoire cloud distant (en WebDAV) avec davfs2. Puis je lance un bon vieux rsync pour synchroniser mes fichiers.
Résultat ? C’est lent. Très lent. Je transfère à peine 250 Mo, je reviens 30 minutes plus tard, et le job n’est toujours pas fini :-/
👉 Conclusion : rsync + WebDAV = ne font pas bon ménage
C’est là que rclone entre en jeu. Rclone est un outil libre qui permet de copier, synchroniser et gérer facilement des fichiers entre ton ordinateur et de nombreux services de stockage en ligne (comme Google Drive, Dropbox, Nextcloud, etc.). Il est optimisé pour les transferts réseau, et parfaitement scriptable. Au départ conçu pour la synchronisation, il offre aujourd’hui un grand nombre de fonctions pratiques pour manipuler tes fichiers dans le cloud, en toute simplicité. Évidement dès qu’on prononce cloud, il faut garder en tête que c’est le pc de quelqu’un d’autre.Et certains cloud comme ceux de Microsoft ou Google ne se gênent pas pour collecter nos données et se réserver la possibilité de les déchiffrer. Mais ça tombe bien rclone permet aussi de copier ou synchroniser ses fichiers en les chiffrant 🙂
C’est parti pour un tuto pour connaitre les bases de rclones. A la fin, tu sauras comment sauvegarder de manière sécurisée tes fichiers sur un cloud.
1. Configurer rclone pour Nextcloud
– Installation
Sur Debian/Ubuntu :
sudo apt install rclone
– Configuration
rclone config
Puis suis le menu interactif :
[n] New remote
Nom : MyCloud
Type de stockage : webdav
Vendor : Nextcloud
URL : https://ton.domaine.tld/remote.php/dav/files/nom_utilisateur/
Nom d’utilisateur : ton identifiant nextcloud (souvent ton adresse mail)
Mot de passe : entre ton mot de passe (rclone le chiffre)
Test de connexion :
rclone ls MyCloud:
Tu devrais voir la liste de tes fichiers. Si c’est bon, on passe à la suite.
rclone lsd MyCloud:
Permet de voir uniquement les dossiers .
2. Première synchronisation
Pour copier tout un dossier local vers le cloud :
rclone copy /home/user/data MyCloud:/sauvegardes/initiale --progress
copy = envoie les fichiers, sans supprimer ceux qui n’existent plus à distance
–progress = affichage des fichiers en cours de traitement
3. Synchronisation régulière (incrémentale)
Tu peux maintenant utiliser :
rclone sync /home/user/data MyCloud:/sauvegardes/actuelle \ --backup-dir=MyCloud:/sauvegardes/versions/$(date +%F_%Hh%M) \ --progress --transfers 8
sync = met à jour la sauvegarde
–backup-dir = envoie les fichiers modifiés/supprimés dans un dossier versionné daté
Chaque exécution crée une sauvegarde incrémentale horodatée.
4. Script automatique : sauvegarde complète + incrémentale
Voici un script Bash pour :
- Faire une sauvegarde complète tous les 15 jours
- Faire une incrémentale les autres jours
- Supprimer les versions de plus de 6 mois
nano backupToCloud.sh
#!/bin/bash
REMOTE="MyCloud"
SRC="/home/user/data"
DEST_BASE="${REMOTE}:/sauvegardes"
DATE=$(date +%F)
EPOCH_DAY=$(date +%s)
DAY_MOD_15=$(( (EPOCH_DAY / 86400) % 15 ))
if [ "$DAY_MOD_15" -eq 0 ]; then
# Sauvegarde complète
DEST="$DEST_BASE/complet/$DATE"
echo "==> Sauvegarde complète vers $DEST"
rclone copy "$SRC" "$DEST" --progress --transfers 8
else
# Sauvegarde incrémentale
DEST="$DEST_BASE/actuelle"
BACKUP_DIR="$DEST_BASE/incremental/$DATE"
echo "==> Sauvegarde incrémentale vers $DEST avec version dans $BACKUP_DIR"
rclone sync "$SRC" "$DEST" --backup-dir="$BACKUP_DIR" --progress --transfers 8
fi
# Nettoyage des versions de plus de 6 mois
echo "==> Suppression des anciennes sauvegardes (>180 jours)"
rclone delete --min-age 180d "$DEST_BASE/complet" --rmdirs
rclone delete --min-age 180d "$DEST_BASE/incremental" --rmdirs
5. Automatisation avec cron
Ajoute le script dans cron pour qu’il s’exécute tous les jours à 3h :
crontab -e
Puis ajoute :
0 3 * * * /home/user/sauvegarde.sh >> /home/user/sauvegarde.log 2>&1
Importer sauvegarde
Copier les fichiers du repertoire cloud vers repertoire local. POur l’exemple on cherche à copier tous les fichiers qui se terminent par « .sh »
rclone copy kdrive://backup_vps_root66/sauvegardes/ /root/SCRIPTS/ --include "*.sh" --progress
Bonus : Chiffrement avec rclone ?
Comment ça marche?
L’idée est simple : tu crées un remote chiffré qui s’appuie sur un remote existant (non chiffré), et tu n’utilises ensuite que le remote chiffré dans tes sauvegardes.
Étapes pour configurer un remote chiffré
Configurer ton remote « classique » (ex. : kdrive, nextcloud, etc.) si ce n’est pas déjà fait .
Dans ce tuto notre remote classique s’intitule MyCloud
Maintenant crée un remote chiffré basé sur ce premier :
rclone config
-> new remote
name> cloud-crypt
Storage> crypt
Remote to encrypt/decrypt> MyCloud:/sauvegardes-chiffrees
Filename encryption> standard
Directory name encryption> true
Password> [choisis un mot de passe sûr]
Tu peux aussi définir un « salt » pour plus de sécurité (rclone te le proposera).
Tu peux générer des mots de passe forts avec rclone config password.
Tu utilises maintenant cloud-crypt: comme remote pour toutes tes commandes :
rclone copy /home/user/Documents cloud-crypt:/backup-documents
Tout est automatiquement chiffré côté local avant l’envoi, et tu peux tout lire/déchiffrer avec rclone uniquement.
Exemple de structure sur le cloud
Sur le cloud, les noms de fichiers et dossiers ressembleront à ceci :
v3xrw5ph8mj0qqppmc4t8q2l90/
l8hkmj55m2qut75vaesus89ef8dk40fjsvsng
Donc illisibles sans ta configuration rclone crypt.
Conclusion
Avec rclone et un peu de Bash, tu peux mettre en place une sauvegarde cloud fiable, versionnée, automatique, et sans passer par des outils propriétaires. Un must have 😉
Leave a Reply