Copia todos os arquivos do OneDrive (Microsoft 365) para o Google Drive usando o rclone — ferramenta gratuita e open source. A migração roda no VPS da empresa, sem ocupar o computador de ninguém.
OneDrive permanece intacto até você decidir cancelar o plano Microsoft
Se cair no meio, basta rodar novamente — pula o que já foi copiado
rclone é open source. Roda no VPS que você já paga
Acesso de administrador ao portal.azure.com
VPS fica trabalhando sozinho, sem precisar ficar online
Domínio verificado e e-mail funcionando antes de iniciar
Se já estiver instalado, o script pula automaticamente.
Para o rclone autenticar no OneDrive da empresa, é necessário criar um "App Registration" no Azure. Feito uma única vez — leva 5 minutos.
Acesse portal.azure.com com a conta de administrador da empresa.
rcloneNa página do app, copie o valor de Application (client) ID — você vai precisar depois.
Também copie o Directory (tenant) ID na mesma página.
rclone → clique AddFiles.ReadWrite → marque Files.ReadWrite.AllAADSTS7000218.
Autenticação via código — sem instalar nada no computador pessoal. O usuário apenas abre uma URL e digita um código de 9 caracteres.
No VPS, substitua os valores e execute:
Após autorizar, execute no VPS:
Anote o Drive ID — será usado na configuração do rclone.
O navegador abre automaticamente. Faça login com a conta Google Workspace da empresa e clique em Permitir.
O terminal exibe um JSON — copie o conteúdo completo.
Cole o JSON gerado e salve no arquivo /home/usuario/gd_token.json no VPS.
Se a migração parar por qualquer motivo, basta rodar o mesmo comando do Passo 01 novamente. O rclone pula automaticamente os arquivos já copiados.
| Parâmetro | Valor | Descrição |
|---|---|---|
--transfers 4 | 4 | Copia 4 arquivos em paralelo |
--checkers 8 | 8 | Verifica 8 arquivos em paralelo |
--log-level INFO | INFO | Registra cada arquivo copiado no log |
rclone copy | — | Copia sem apagar a origem |
| Erro | Causa | Solução |
|---|---|---|
AADSTS650051 |
App padrão do rclone bloqueado pelo tenant | Criar App Registration próprio no Azure (Parte 02) |
AADSTS7000218 |
Public client flows desabilitado | Authentication → Allow public client flows → Yes |
| Permission denied no log | Pasta de log sem permissão de escrita | Usar pasta home do usuário em vez de /var/log |
| Invalid Credentials (Google) | Access token expirado | Definir expiry para data passada — rclone renova com o refresh_token |
| drive_id não encontrado | Config sem drive_id | Consultar Graph API com token válido (Parte 03, Passo 04) |
| Signature is invalid | Token corrompido no copy-paste | Usar device code flow em vez de copiar tokens manualmente |