Use rclone para sincronizar backups com Dropbox ou Google Drive

Existe um plugin que permite sincronizar seus backups do Discourse com vários provedores de armazenamento em nuvem. Infelizmente, atualmente ele não funciona com Dropbox e Google Drive. Se, mesmo assim, você quiser armazenar seu backup no Dropbox ou Google Drive, siga os passos abaixo. Usarei o Dropbox como exemplo, mas as instruções também funcionam com qualquer outro backend suportado pelo rclone.

Aviso: As instruções foram testadas no Ubuntu 16.04 e funcionam para mim, mas não sou especialista nisso, então pode haver maneiras melhores de fazer isso. Sinta-se à vontade para me corrigir e ficarei feliz em atualizar esta postagem.

Instalar o rclone

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

Se o comando acima falhar, pode ser solicitado que você instale uma ferramenta de descompactação:

sudo apt-get install unzip

Conceder acesso ao Dropbox

Esta é a parte mais complicada, pois você precisa de um navegador para conceder ao rclone acesso ao seu Dropbox, o que não é fácil, para dizer o mínimo, quando você está acessando um VPS via SSH. Portanto, você precisa proceder em duas etapas:

No seu servidor, execute

sudo rclone config

e siga as instruções. Em algum momento, você será perguntado

Usar configuração automática?

E você responde N

Agora, você precisa alternar para sua máquina de desktop para obter o token de autenticação. Isso significa que você precisa instalar o rclone na sua máquina de desktop (Rclone para Windows está aqui: Rclone downloads) e seguir as instruções em Remote Setup.

Uma vez obtido seu token e colado no prompt SSH que estava aguardando, você pode verificar se tudo funcionou conforme o esperado obtendo uma lista de todos os diretórios no seu Dropbox:

rclone lsd drobo:

onde drobo é o nome que você atribuiu ao seu Dropbox anteriormente.

Copiar seus backups para o Dropbox

Localize seus arquivos de backup. Geralmente, você os encontrará em /var/discourse/shared/standalone/backups/default. Se estiver usando uma configuração de dois contêineres, eles provavelmente estarão em /var/discourse/shared/web-only/backups/default.

O comando para copiar seus backups para o diretório de backups no seu Dropbox será

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

Configurar uma tarefa cron para copiar seus backups para o Dropbox

Para copiar os backups todos os dias às 18h, adicione o seguinte ao seu crontab:

crontab -e

e adicione

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

Você pode executá-lo com mais frequência se desejar, pois apenas novos arquivos serão copiados de qualquer maneira.

Observe que a opção copy adicionará cada vez mais backups ao seu Dropbox, mesmo quando os arquivos no seu servidor forem excluídos. Se você quiser manter apenas os backups que também estão mantidos no seu servidor, use sync em vez de copy.

16 curtidas

Conselhos para aqueles que frequentemente (por exemplo, diariamente) sincronizam seus backups no Google Drive através de um cron job e não têm muito espaço livre em seu drive, recomendo adicionar a flag --drive-use-trash=false ao seu comando rclone.

Exemplo:

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

Com esta flag, o rclone excluirá backups desatualizados do Google Drive em vez de enviá-los para a lixeira, onde ficam 30 dias antes de serem excluídos automaticamente. Isso pode economizar muito espaço no Drive.

4 curtidas