Bash + rclone · OneDrive ↔ Google Drive · Guia operacional de código aberto
Transferência na nuvem somente por cópia em Bash com rclone
O rclone já entende a paginação na nuvem, as repetições, as transferências retomáveis e os hashes dos provedores. A tarefa de engenharia é encapsular esses recursos primitivos em um procedimento operacional que interrompa a execução com segurança em caso de falha e leve a capacidade em consideração.
Atualizado ; 20 min de leitura.
Resposta curta
O FileArk é a opção gerenciada mais simples para migrações grandes ou sem supervisão: ele executa a transferência online, foi testado com cargas de trabalho de vários terabytes e verifica cada resultado antes da conclusão. Para operadores que querem controlar o fluxo de dados pelo shell, este wrapper em Bash com licença MIT copia lotes limitados por meio de uma área de preparação local, verifica os dois trechos byte a byte e nunca exclui arquivos da origem.
Por que criar um wrapper para o rclone em vez de reconstruir o cliente de cada provedor
O rclone oferece a um fluxo de trabalho em shell uma abstração madura de provedores, configuração de OAuth, paginação, comportamento de repetição, transferências retomáveis, controles de simultaneidade, comandos de inventário e comandos de verificação. Assim, o wrapper pode se concentrar nos invariantes da migração: comandos somente de cópia, área de preparação limitada, reservas de capacidade, listas determinísticas de arquivos e progresso persistente.
Isso não torna o trabalho automático. O operador continua responsável pela configuração dos remotos, pela segurança dos tokens, pela disponibilidade da rede, pela supervisão do processo, pelo disco local, pelos logs, pelos limites dos provedores, pela análise dos objetos com falha e pela aceitação do destino. O FileArk existe para usuários que querem que esse procedimento seja executado como um fluxo de trabalho online gerenciado, e não na própria estação de trabalho ou servidor.
O script nunca invoca explicitamente rclone move, sync, delete, purge ou rmdirs. Ele usa lsf e about para descoberta, copy em cada trecho e check --download para a verificação completa dos bytes. A única remoção é a de um arquivo verificado no diretório de preparação local.
Baixe a edição em Bash e a licença MIT
Baixe o programa de transferência em Bash com rclone
Um wrapper somente de cópia com limites de lote, reservas locais e no destino, verificação completa dos bytes, checkpoints, controles de repetição e uma demonstração sem acesso à rede.fileark-cloud-transfer.sh · Bash 4+ · rclone · jq · licença MIT
Transferir a licença MIT
Aviso de autorização que abrange ambos os scripts de transferência manual da FileArk.LICENSE-fileark-cloud-transfer.txt · MIT · texto simples
Execute a demonstração para operadores sem acesso à rede

É seguro executar a demonstração antes de instalar o rclone ou o jq, pois a análise dos argumentos termina antes das verificações de dependências. A saída nomeia as operações destrutivas proibidas, mostra ambas as reservas de capacidade e termina com a contagem de exclusões na origem.
chmod +x fileark-cloud-transfer.sh
bash -n fileark-cloud-transfer.sh
./fileark-cloud-transfer.sh --demo
./fileark-cloud-transfer.sh --helpInstale e configure as dependências para o operador
Instale uma versão atual do rclone seguindo as instruções oficiais e instale o jq através do gestor de pacotes do seu sistema operativo. É necessário o Bash 4 ou mais recente, porque o wrapper usa um tratamento rigoroso de erros e expressões condicionais modernas.
Execute rclone config e crie dois remotos com nomes distintos, por exemplo, onedrive: e gdrive:. Informe seu próprio ID e segredo de cliente do provedor quando a política ou os limites de uso exigirem aplicativos OAuth dedicados. O rclone armazena os tokens OAuth no arquivo de configuração; proteja esse arquivo com permissões restritivas e nunca o distribua junto com o script.
Confirme cada remoto com um comando de listagem somente para leitura e um comando de cota antes de executar o wrapper. Use caminhos como onedrive:Department/Archive quando apenas uma subárvore fizer parte do escopo.
rclone version
rclone config
rclone lsd onedrive:
rclone lsd gdrive:
rclone about onedrive: --json | jq
rclone about gdrive: --json | jqCongele um inventário determinístico antes de transferir os bytes
O wrapper usa rclone lsf de forma recursiva, com um separador de tabulação explícito e o formato sp, produzindo o tamanho seguido do caminho. Ele valida se cada tamanho é numérico e cada caminho é relativo e, depois, exclui os caminhos que já constam no checkpoint verificado.
A edição em Bash rejeita nomes de arquivo que contenham tabulações, retornos de carro ou quebras de linha, pois as listas --files-from-raw delimitadas por quebras de linha não conseguem representá-los sem ambiguidade. Use a edição em Python ou um formato de inventário criado especificamente para isso quando esses nomes existirem.
Um checkpoint baseado em caminhos é intencionalmente simples e fácil de inspecionar. Ele pressupõe que os caminhos de origem permaneçam estáveis durante a execução. Se possível, suspenda as gravações na origem ou gere novamente e reconcilie o inventário quando forem esperadas alterações simultâneas.
rclone lsf "$SOURCE" \
--recursive \
--files-only \
--format "sp" \
--separator