Conteúdos

Rclone: migrando arquivos entre serviços de nuvem

Manter arquivos em serviços de nuvem é conveniente, mas a migração entre provedores nem sempre é simples. Quando precisei levar um backup do Dropbox para o Google Drive, não queria depender de baixar tudo para o notebook e depois enviar novamente. Além de demorar, esse processo exigiria espaço local e uma conexão estável durante toda a operação.

Foi nesse cenário que o Rclone se tornou uma ferramenta muito útil. Com ele, consigo tratar diferentes serviços de armazenamento como destinos acessíveis pelo terminal e fazer cópias diretamente entre eles.

O que é o Rclone

O Rclone é uma ferramenta de linha de comando para gerenciar arquivos em serviços de armazenamento local e em nuvem. Ele é frequentemente descrito como um tipo de rsync para a nuvem, mas sua principal vantagem é a quantidade de provedores que consegue integrar.

Cada conta ou serviço configurado recebe o nome de um remote. Depois disso, comandos como listar, copiar, comparar e sincronizar podem usar esse remote como origem ou destino.

O Rclone não precisa de uma interface gráfica para funcionar. Isso facilita seu uso em servidores, sessões SSH, tarefas agendadas e operações que precisam continuar rodando dentro de um tmux.

Configurando os serviços

O primeiro passo é criar os remotes com o assistente interativo:

rclone config

Depois de configurar as contas, posso verificar se elas estão disponíveis:

rclone listremotes
rclone lsd dropbox:
rclone lsd gdrive:

Os nomes são definidos durante a configuração. Neste exemplo, dropbox: representa a origem e gdrive: representa o Google Drive. O conteúdo depois dos dois-pontos indica o caminho dentro daquele serviço.

Não é necessário montar os serviços como diretórios locais para fazer uma cópia. O Rclone conversa com as APIs dos provedores e transfere os arquivos conforme o comando solicitado.

Migrando um backup do Dropbox para o Google Drive

No meu caso, a tarefa era copiar um backup que estava no Dropbox para o Google Drive. Uma cópia direta pode ser feita assim:

rclone copy dropbox:backup gdrive:backup --progress

O comando copy envia os arquivos que existem na origem e não remove arquivos que já estão no destino. Essa característica é importante para uma primeira migração, porque permite repetir a operação sem transformar automaticamente o destino em um espelho destrutivo da origem.

Em uma operação maior, posso ajustar a quantidade de transferências simultâneas e dos verificadores:

rclone copy dropbox:backup gdrive:backup \
  --progress \
  --transfers 4 \
  --checkers 8

Antes de iniciar uma cópia definitiva, gosto de simular o que será feito:

rclone copy dropbox:backup gdrive:backup --dry-run

Assim consigo perceber se o caminho está correto e se o Rclone está encontrando os arquivos esperados.

Conferindo o resultado

Uma cópia concluída sem mensagens de erro é um bom sinal, mas não deve ser a única verificação. O Rclone também pode comparar a origem e o destino:

rclone check dropbox:backup gdrive:backup

Essa comparação ajuda a identificar arquivos ausentes ou diferenças entre os dois lados. Para conferir o tamanho ocupado no destino, posso usar:

rclone size gdrive:backup

Em backups importantes, também mantenho os logs da operação. Eles ajudam a investigar falhas de autenticação, limites de API, nomes de arquivos incompatíveis e interrupções de rede.

copy ou sync?

Essa é uma diferença que merece atenção. copy acrescenta ou atualiza arquivos no destino, mas não apaga o que já existe ali. Já sync tenta fazer o destino ficar igual à origem e pode remover arquivos que não estejam mais presentes na origem.

Um comando de sincronização seria:

rclone sync dropbox:backup gdrive:backup --progress

Ele pode ser adequado para um espelho controlado, mas não é a primeira opção que escolho para uma migração. Antes de usar sync, é importante executar com --dry-run, revisar a lista de alterações e ter certeza de que o destino não contém arquivos que precisam ser preservados.

Outras possibilidades

O Rclone não serve apenas para trocar arquivos entre Dropbox e Google Drive. A mesma ideia pode ser usada para:

  • Fazer cópias de servidores para um armazenamento externo.
  • Mover grandes volumes entre diferentes provedores.
  • Montar um serviço de nuvem como diretório local quando isso fizer sentido.
  • Filtrar arquivos por extensão, tamanho, data ou padrão de nome.
  • Criptografar nomes e conteúdo com um remote baseado em crypt.
  • Automatizar cópias com scripts e agendadores.
  • Retomar transferências sem começar tudo novamente após uma interrupção.

Também é possível limitar a velocidade, excluir diretórios temporários e executar a operação em uma sessão persistente do tmux. Essas opções tornam a ferramenta mais adequada para servidores e rotinas de backup do que uma simples interface de arrastar e soltar.

Cuidados durante a migração

Uma migração de arquivos continua sendo uma operação de backup e deve ser tratada com cuidado. Antes de apagar a origem, verifico se a cópia terminou, comparo os dois lados e mantenho uma segunda forma de recuperação quando os dados são importantes.

Também evito colocar tokens de acesso em scripts ou comandos compartilhados. A configuração dos remotes contém credenciais e deve ter permissões restritas. Em tarefas automatizadas, prefiro usar um usuário e um escopo de acesso compatíveis com a operação, em vez de conceder mais permissões do que o necessário.

Outro ponto é que serviços diferentes possuem regras diferentes para nomes, tamanhos e tipos de arquivo. Uma cópia pode exigir mais de uma tentativa quando há muitos arquivos, limites de API ou problemas temporários de autenticação.

Minha conclusão

O Rclone resolveu para mim um problema prático: migrar um backup do Dropbox para o Google Drive sem precisar fazer uma cópia intermediária no notebook. A ferramenta transforma serviços diferentes em remotes que podem ser usados de maneira consistente no terminal.

O mais importante é que ela não fica limitada a uma migração específica. Depois de configurar os serviços, posso repetir cópias, conferir resultados, automatizar rotinas e escolher com mais liberdade onde os arquivos devem ficar. Para quem administra backups ou usa mais de um provedor de nuvem, vale a pena conhecer o Rclone.