Use o rclone para sincronizar com o Dropbox (2025)

Administradores e moderadores: sintam-se à vontade para mover este tópico para outro lugar ou editá-lo, se necessário.

Estas são instruções detalhadas, passo a passo, sobre como instalei o rclone e configurei tudo para fazer backup do meu Discourse no Dropbox. Para usuários do Google Drive, acredito que a maioria desses passos também se aplicará.

Segui algumas das instruções originalmente fornecidas por Christoph (@tophee) aqui:

Como não sou especialista, elas pareciam muito limitadas e eu acabaria falhando, então pedi ajuda ao ChatGPT e tudo está funcionando! Documentei tudo, passo a passo, para aqueles de vocês que provavelmente não são usuários avançados como eu e precisam de uma ajuda extra ao longo do caminho.

:one: Instalar rclone remotamente e preparar para o Dropbox

Faça SSH para o seu servidor:

ssh root@xxx.xxx.xxx.xxx

Quando estiver no seu servidor:

root@ServerNameHere:~#

Instale o rclone:

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

Se for bem-sucedido, execute:

sudo rclone config

Quando mostrar:

2025/08/13 11:29:31 NOTICE: Config file "/root/.config/rclone/rclone.conf" not found - using defaults
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> 

… digite n. Pressione Enter.

Quando apresentado com:

Enter name for new remote.
name> 

Dê um nome, por exemplo dropbox_backup. Pressione Enter.

Ele mostrará uma lista em vermelho e verde (mostrou para mim), e uma dessas opções é o Dropbox. Cada opção tem um número associado. O meu foi:

14 / Dropbox
   \ (dropbox)

Na parte inferior, onde diz Storage>, adicione o número do Dropbox. Então, no meu caso, terminei com Storage>14. Pressione Enter.

Ele mostrará:

Option client_id.
OAuth Client Id.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_id> 

Apenas pressione Enter para deixar em branco. Faça o mesmo quando mostrar:

Option client_secret.
OAuth Client Secret.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_secret> 

Quando mostrar:

Edit advanced config?
y) Yes
n) No (default)
y/n> 

Digite n e pressione Enter.

Quando mostrar:

Use web browser to automatically authenticate rclone with remote?
 * Say Y if the machine running rclone has a web browser you can use
 * Say N if running rclone on a (remote) machine without web browser access
If not sure try Y. If Y failed, try N.

y) Yes (default)
n) No
y/n> 

Digite n e pressione Enter.

Quando mostrar:

Option config_token.
For this to work, you will need rclone available on a machine that has
a web browser available.
For more help and alternate methods see: https://rclone.org/remote_setup/
Execute the following on the machine with the web browser (same rclone
version recommended):

	rclone authorize "dropbox"
Then paste the result.
Enter a value.
config_token> 

:stop_sign: Pare!

:two: Instalar rclone localmente e autorizar o Dropbox

Instale o rclone no seu computador. No meu caso, abri uma nova janela do Terminal no meu Mac para poder instalar o rclone sem interferir no processo anterior, pois preciso continuar após obter o token do Dropbox.

Primeiro verifiquei se eu o tinha instalado no meu Mac executando:

rclone version

Eu não tinha, então tive que instalá-lo. No meu caso particular, estou usando o MacPorts, pois o Homebrew não funciona bem com o Catalina; escolha sua opção preferida.

Comando Homebrew:

brew install rclone

Comando MacPorts:

sudo port install rclone

Assim que estiver instalado, nessa mesma janela, execute:

rclone authorize "dropbox"

Este nome dropbox NÃO está relacionado ao nome dropbox_backup que escolhemos anteriormente.

Depois de executar isso, o navegador abrirá a janela de autorização.
Se não abrir, cole este URL no seu navegador: http://127.0.0.1:53682/auth (de acordo com estas instruções).

Faça login no Dropbox. Clique no botão Allow. Se tudo correr bem, você receberá a mensagem:

Success!
All done. Please go back to rclone.

Feche essa janela.

:three: Finalizar a configuração do Dropbox

Volte ao Terminal, e ele mostrará um token longo (será super longo, eu apenas o encurtei aqui):

{"access_token":"sl.u.AF5VJTs.................ZvNhniOToyQG","token_type":"bearer","refresh_token":"jygyhExsHRgAAAAAAAAAAfeHd8D0l5jzLvuiZ1onH2nXP2YeC2ycrbm5eQ5Y3uc6","expiry":"2025-08-13T16:58:41.072138+01:00","expires_in":14400}

Copie tudo, desde o { de abertura até o } de fechamento, incluindo as chaves, e cole na outra janela:

Option config_token.
For this to work, you will need rclone available on a machine that has
a web browser available.
For more help and alternate methods see: https://rclone.org/remote_setup/
Execute the following on the machine with the web browser (same rclone
version recommended):

	rclone authorize "dropbox"
Then paste the result.
Enter a value.
config_token> PASTE_TOKEN_HERE

Pressione Enter.

Se tudo for bem-sucedido, você verá algo como:

Configuration complete.
Options:
- type: dropbox
- token: {"access_token":"sl.u.AF5VJTs7..........ToyQG","token_type":"bearer","refresh_token":"jygyhExsHRgAAAAAAAAAAfeHd8D0l5jzLvuiZ1onH2nXP2YeC2ycrbm5eQ5Y3uc6","expiry":"2025-08-13T16:58:41.072138+01:00","expires_in":14400}
Keep this "dropbox_backup" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> 

Escolha y para mantê-lo. Isso salvará o remote como dropbox_backup no seu servidor, e você poderá usá-lo para comandos rclone. Pressione Enter.

Ele mostrará:

Current remotes:

Name                 Type
====                 ====
dropbox_backup       dropbox

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> 

Digite q para sair da configuração. Seu remote dropbox_backup está pronto para uso. Pressione Enter.

Ainda em root@, execute rclone lsd dropbox_backup:
Isso listará todos os diretórios de nível superior no seu Dropbox para confirmar que a conexão funciona.

:four: Backups

:keyboard: Manual

Para fazer backup manualmente, assumindo que você tenha uma configuração típica (não uma configuração de dois contêineres), execute:

sudo rclone copy /var/discourse/shared/standalone/backups/default --exclude tmp/ dropbox_backup:backups
  • /var/discourse/shared/standalone/backups/default → pasta de origem no seu servidor (confirmo que este caminho é preciso em uma configuração típica – não em uma configuração de dois contêineres – pelo menos a partir de agosto de 2025).
  • --exclude tmp/ → ignora arquivos temporários.
  • dropbox_backup:backups → nome do remote (dropbox_backup) e pasta no Dropbox (backups).

Isso fará o upload de todos os arquivos de backup (exceto tmp/) para o seu Dropbox, para uma pasta chamada backups, usando o nome que escolhemos anteriormente: dropbox_backup.

Se você quiser uma pasta com espaços, por exemplo Discourse Backups, execute isto em vez disso:

sudo rclone copy /var/discourse/shared/standalone/backups/default --exclude tmp/ "dropbox_backup:Discourse Backups"

Se tudo correr como planejado, você agora verá uma pasta Discourse Backups (ou o nome que você escolheu) no seu Dropbox com todos os seus arquivos de backup.

Como você chegou até aqui, vá em frente e feche a segunda janela do Terminal, a usada para instalar o rclone no seu computador, para evitar qualquer confusão futura.

:alarm_clock: Cron job

Agora, vamos criar um cron job para automatizar este processo:

crontab -e

Você será apresentado com:

no crontab for root - using an empty one
Select an editor.  To change later, run select-editor again.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny
  4. /bin/ed

Choose 1-4 [1]: 

Escolha 1. Pressione Enter.

Você verá algo como:

# Edit this file to introduce tasks to be run by cron.
# 
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
# 
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
# 
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
# 
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
# 
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
# 
# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command

No final de tudo isso, adicione o cron job. Para copiar os backups todos os dias às 18h, adicione o seguinte:

0 18 * * * rclone copy /var/discourse/shared/standalone/backups/default --exclude tmp/ "dropbox_backup:Discourse Backups"

Assim, sua “lista” terminará com:

(TEXTO INICIAL AQUI)

# m h  dom mon dow   command

0 18 * * * rclone copy /var/discourse/shared/standalone/backups/default --exclude tmp/ "dropbox_backup:Discourse Backups"

Pressione Ctrl+X. Na parte inferior da janela, ele perguntará se deseja salvar. Pressione Y e depois Enter.

Você terminou!

Você pode executar o cron job com mais frequência se quiser, 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 do seu servidor forem excluídos. Se você quiser manter apenas aqueles que também são mantidos no seu servidor, use sync em vez de copy.

5 curtidas

Obrigado, isso foi muito útil. Agora tenho rclone e Dropbox conectados, como posso conectar o Dropbox ao meu Plex?

Às vezes me pergunto se o comando sync não deveria ser usado em vez de copy nos exemplos desses tutoriais (pensando em Use rclone to sync backups to Dropbox or Google Drive também), e mencionar o comando copy como outra opção, porque não sei por que alguém preferiria usar copy em vez de sync, a menos que tenha espaço ilimitado :thinking:

Para tudo o que faço, gosto de manter mais backups caso algo dê errado, pelo menos por um tempo. Manter várias cópias me dá tranquilidade. Ter uma única cópia me deixa nervoso :wink: