Utilisez rclone pour synchroniser les sauvegardes avec Dropbox ou Google Drive

Il existe un plugin qui vous permet de synchroniser vos sauvegardes Discourse vers divers fournisseurs de stockage cloud. Malheureusement, il ne fonctionne actuellement pas avec Dropbox et Google Drive. Si vous souhaitez malgré tout stocker vos sauvegardes sur Dropbox ou Google Drive, suivez les étapes ci-dessous. Je prendrai Dropbox comme exemple, mais ces instructions fonctionneront également avec n’importe quel autre backend pris en charge par rclone.

Avertissement : Ces instructions ont été testées sur Ubuntu 16.04 et elles fonctionnent pour moi, mais je ne suis pas un expert en la matière, il existe peut-être de meilleures méthodes. N’hésitez pas à me corriger et je mettrai volontiers à jour ce message.

Installer rclone

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

Si la commande ci-dessus échoue, il se peut qu’on vous demande d’installer un outil de décompression :

sudo apt-get install unzip

Accorder l’accès à Dropbox

C’est la partie la plus délicate car vous devez utiliser un navigateur pour accorder à rclone l’accès à votre Dropbox, ce qui n’est pas facile, pour le moins qu’on puisse le dire, lorsque vous vous connectez en SSH à un VPS. Vous devez donc procéder en deux étapes :

Sur votre serveur, exécutez

sudo rclone config

et suivez les instructions. À un moment donné, on vous demandera :

Use auto config?

Répondez N.

Vous devez maintenant passer à votre ordinateur de bureau pour obtenir le jeton d’authentification. Cela signifie que vous devez installer rclone sur votre ordinateur de bureau (Rclone pour Windows est disponible ici : Rclone downloads) et suivre les instructions de Remote Setup.

Une fois que vous avez obtenu votre jeton et l’avez collé dans l’invite SSH qui l’attendait, vous pouvez vérifier que tout a fonctionné comme prévu en obtenant la liste de tous les répertoires de votre Dropbox :

rclone lsd drobo:

drobo est le nom que vous avez attribué à votre Dropbox précédemment.

Copier vos sauvegardes vers Dropbox

Repérez vos fichiers de sauvegarde. Habituellement, vous les trouverez dans /var/discourse/shared/standalone/backups/default. Si vous utilisez une configuration à deux conteneurs, ils se trouveront probablement dans /var/discourse/shared/web-only/backups/default.

La commande pour copier vos sauvegardes vers le répertoire de sauvegarde de votre Dropbox sera :

sudo rclone copy /var/discourse/shared/standalone/backups/default --exclude tmp/ drobo:backups

Configurer une tâche cron pour copier vos sauvegardes vers Dropbox

Pour copier les sauvegardes tous les jours à 18 h, ajoutez la ligne suivante à votre crontab :

crontab -e

et ajoutez

0 18 * * * rclone copy /var/discourse/shared/standalone/backups/default --exclude tmp/ drobo:backups

Vous pouvez l’exécuter plus fréquemment si vous le souhaitez, car seuls les nouveaux fichiers seront copiés de toute façon.

Notez que l’option copy ajoutera de plus en plus de sauvegardes à votre Dropbox, même lorsque celles de votre serveur seront supprimées. Si vous ne souhaitez conserver que celles qui sont également conservées sur votre serveur, utilisez sync à la place de copy.

16 « J'aime »

Conseils pour ceux qui synchronisent souvent (par exemple, quotidiennement) leurs sauvegardes sur Google Drive via une tâche cron et qui n’ont pas beaucoup d’espace libre sur leur disque, je recommanderais d’ajouter le drapeau --drive-use-trash=false à leur commande rclone.

Exemple :

rclone sync /var/discourse/shared/standalone/backups/default --drive-use-trash=false --exclude tmp/ discourse:

Avec ce drapeau, rclone supprimera les sauvegardes obsolètes de Google Drive au lieu de les envoyer dans la corbeille, où elles restent 30 jours avant d’être automatiquement supprimées. Cela peut économiser beaucoup d’espace de stockage sur Drive.

4 « J'aime »