Usa rclone per sincronizzare i backup su Dropbox o Google Drive

C’è un plugin che ti consente di sincronizzare i tuoi backup di Discourse con vari provider di archiviazione cloud. Purtroppo, al momento non funziona con Dropbox e Google Drive. Se desideri comunque salvare il tuo backup su Dropbox o Google Drive, segui i passaggi riportati di seguito. Userò Dropbox come esempio, ma le istruzioni funzioneranno anche con qualsiasi altro backend supportato da rclone.

Disclaimer: Le istruzioni sono state testate su Ubuntu 16.04 e funzionano per me, ma non sono un esperto in materia, quindi potrebbero esserci modi migliori per farlo. Sentiti libero di correggermi e sarò felice di aggiornare questo post.

Installa rclone

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

Se il comando sopra fallisce, potrebbe essere richiesto di installare uno strumento per decomprimere file:

sudo apt-get install unzip

Concedi l’accesso a Dropbox

Questa è la parte più delicata perché è necessario un browser per concedere a rclone l’accesso al tuo Dropbox, il che non è affatto semplice, per dir poco, quando si utilizza SSH su un VPS. Pertanto, è necessario procedere in due fasi:

Sul tuo server, esegui

sudo rclone config

e segui le istruzioni. A un certo punto ti verrà chiesto

Use auto config?

E tu rispondi N

Ora devi passare alla tua macchina desktop per ottenere il token di autenticazione. Ciò significa che devi installare rclone sulla tua macchina desktop (Rclone per Windows è disponibile qui: Rclone downloads) e seguire le istruzioni per Remote Setup.

Una volta ottenuto il token e incollato nel prompt SSH in attesa, puoi verificare che tutto funzioni come previsto ottenendo un elenco di tutte le directory nel tuo Dropbox:

rclone lsd drobo:

dove drobo è il nome che hai assegnato al tuo Dropbox in precedenza.

Copia i tuoi backup su Dropbox

Trova i tuoi file di backup. Di solito, li trovi in /var/discourse/shared/standalone/backups/default. Se stai utilizzando una configurazione a due container, probabilmente si troveranno in /var/discourse/shared/web-only/backups/default.

Il comando per copiare i tuoi backup nella directory dei backup del tuo Dropbox sarà

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

Configura un job cron per copiare i tuoi backup su Dropbox

Per copiare i backup ogni giorno alle 18:00, aggiungi quanto segue al tuo crontab:

crontab -e

e aggiungi

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

Puoi eseguirlo più frequentemente se desideri, poiché verranno copiati solo i nuovi file.

Tieni presente che l’opzione copy aggiungerà sempre più backup al tuo Dropbox, anche quando quelli sul tuo server vengono eliminati. Se desideri mantenere solo quelli che sono anche conservati sul tuo server, utilizza sync invece di copy.

16 Mi Piace

Consiglio per chi sincronizza spesso (ad esempio, quotidianamente) i propri backup su Google Drive tramite un cron job e non ha molto spazio libero sul proprio drive, consiglio di aggiungere il flag --drive-use-trash=false al proprio comando rclone.

Esempio:

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

Con questo flag, rclone eliminerà i backup obsoleti da Google Drive invece di inviarli nel cestino, dove rimangono 30 giorni prima di essere eliminati automaticamente. Può far risparmiare molto spazio su Drive.

4 Mi Piace