Rclone: ferramenta para sincronização e gerenciamento de arquivos em armazenamento em nuvem
(rclone.org)- Rclone é uma ferramenta para gerenciar arquivos em nuvem pela linha de comando, sem depender de interfaces web, e consegue lidar com mais de 70 produtos de armazenamento e protocolos de transferência padrão
- Oferece operações familiares ao estilo Unix, como
rsync,cp,mvemount, adaptadas para a nuvem, com suporte a pipelines de shell,--dry-run, scripts e automação via API - Preserva timestamps e checksums durante a transferência e pode retomar a partir do último ponto de transferência bem-sucedido mesmo em ambientes com limitação de banda, conexões instáveis ou cotas
- Pode montar como disco sistemas de arquivos locais, em nuvem e virtuais no Windows, macOS, Linux e FreeBSD, além de servi-los via SFTP, HTTP, WebDAV, FTP e DLNA
- Faz backup, restauração, migração entre nuvens, criptografia, compressão, fragmentação, hashing e união em uma única ferramenta, sendo útil para operar vários serviços de armazenamento ao mesmo tempo
Ferramenta de linha de comando para gerenciamento de arquivos em nuvem
- Rclone é um programa de linha de comando para gerenciar arquivos em armazenamento em nuvem
- É usado como uma ferramenta rica em recursos que pode substituir a interface web de armazenamento fornecida pelos vendors de nuvem
- Suporta mais de 70 alvos, incluindo object stores S3, serviços de armazenamento de arquivos corporativos e para consumidores, além de protocolos de transferência padrão
- Os usuários chamam o Rclone de “canivete suíço do armazenamento em nuvem” e de “tecnologia indistinguível de magia”
Comandos no estilo Unix e automação
- O Rclone oferece operações em nuvem correspondentes a comandos Unix familiares
rsynccpmvmountlsncdutreermcat
- A sintaxe oferece suporte a pipelines de shell, e com
--dry-runé possível verificar a operação antes de aplicar mudanças reais - Pode ser usado não só pela linha de comando, mas também por scripts e pela API
- Desenvolvedores terceirizados usam a linha de comando e a API do Rclone para criar soluções de backup, restauração, GUIs e processos de negócio
Proteção de dados e estabilidade de transferência
- Preserva timestamps durante a transferência e sempre valida checksums
- Mesmo em ambientes com banda limitada, conexão intermitente ou cotas, pode retomar a partir do último arquivo transferido com sucesso
- É possível verificar a integridade dos arquivos com o comando check
- Quando possível, usa transferência no lado do servidor para reduzir o uso de banda local e realizar transferências entre provedores sem passar pelo disco local
- Os recursos relacionados à transferência incluem
- Verificação de integridade de arquivos por meio de hashes MD5 e SHA1
- Preservação de timestamps dos arquivos
- Trabalhos que podem ser retomados a qualquer momento
- Transferências em rede entre diferentes provedores de nuvem
- Downloads multithread para o disco local
Cenários de backup, restauração e migração
- Faz backup de arquivos para o armazenamento em nuvem e, se necessário, os criptografa
- Restaura arquivos do armazenamento em nuvem e, se necessário, os descriptografa
- Pode espelhar dados da nuvem para outro serviço de nuvem ou para o ambiente local
- Pode migrar dados para a nuvem ou entre vendors de armazenamento em nuvem
- Monta múltiplos armazenamentos em nuvem criptografados, com cache e heterogêneos como se fossem discos
- Analisa e agrega dados do armazenamento em nuvem com lsf, ljson, size e ncdu
- Com Union, pode apresentar vários sistemas de arquivos locais ou em nuvem como se fossem um só
Operações com arquivos e oferta de serviços
- Copy copia arquivos novos ou alterados para o armazenamento em nuvem
- Sync torna diretórios idênticos em uma única direção
- Bisync sincroniza dois diretórios em duas direções
- Move move arquivos para o armazenamento em nuvem e apaga os arquivos locais após a verificação
- Check verifica hashes e arquivos ausentes ou extras
- Mount monta o armazenamento em nuvem como disco de rede
- Serve disponibiliza arquivos locais ou remotos via HTTP, WebDAV, FTP, SFTP e DLNA
- A GUI baseada na web é um recurso experimental
Montagem e backends virtuais
- Monta sistemas de arquivos locais, em nuvem e virtuais como discos no Windows, macOS, Linux e FreeBSD
- O mesmo sistema de arquivos pode ser disponibilizado via SFTP, HTTP, WebDAV, FTP e DLNA
- Backends virtuais envolvem sistemas de arquivos locais ou em nuvem para aplicar recursos adicionais
- Crypt: criptografia de arquivos
- Compress: compressão de arquivos
- Chunker: divisão de arquivos grandes
- Hasher: hashing de arquivos
- Union: união de vários armazenamentos remotos
- Alias: renomeação de um armazenamento remoto existente
- Archive: leitura de arquivos de arquivo
- Cache: cache de armazenamento remoto, obsoleto
- Combine: combinação de vários armazenamentos remotos em uma árvore de diretórios
Provedores compatíveis e instalação
- Entre os provedores compatíveis estão Amazon S3, Backblaze B2, Box, Dropbox, Google Cloud Storage, Google Drive, Microsoft Azure Blob Storage, Microsoft OneDrive, Proton Drive, SFTP, SMB/CIFS, WebDAV e sistemas de arquivos locais
- Outros provedores baseados em protocolos padrão, como WebDAV ou S3, também costumam funcionar imediatamente
- O Rclone é um software open source maduro, inspirado no rsync, e escrito em Go
- O Rclone está incluído nos repositórios oficiais do Ubuntu, Debian, Fedora, Brew e Chocolatey
- Recomenda-se baixar a versão mais recente em rclone.org
- Links relacionados
1 comentários
Opiniões no Hacker News
Gosto muito do rclone. Lembro que a antiga página de doações tinha uma frase mais ou menos assim: “o rclone é um projeto feito por amor, então não preciso de dinheiro, mas eu ficaria muito grato se você contribuísse para eu comprar flores para minha esposa”
Simplesmente parecia uma pessoa bacana, e fico feliz que agora ele possa trabalhar em tempo integral no rclone. Espero que continue sendo um trabalho gratificante
Encontrei a página daquela época no archive.org, e era ainda mais calorosa do que eu lembrava:
“Rclone is a pure open source for love-not-money project. However I’ve had requests for a donation page and coding rclone does take me away from something else I love - my wonderful wife.”
“So if you would like to send a donation, I will use it to buy flowers (and other pretty things) for her which will make her very happy.”
https://web.archive.org/web/20180624105005/https://rclone.or...
O rclone também consegue montar armazenamento em nuvem como um disco local, o que é especialmente útil no Kubernetes
Quando há muitos arquivos na mesma pasta, usar como se fosse um drive não oferece velocidades de leitura/escrita muito altas, mas é uma forma rápida e fácil de aproveitar armazenamento em nuvem em um projeto
Também é possível ter criptografia de ponta a ponta por local; por exemplo, todos os arquivos colocados no drive montado são gravados criptografados na pasta
/foodo Dropbox. Isso é bom porque provedores como Dropbox ou S3 ainda não oferecem criptografia de ponta a ponta nativaNo geral, o rclone é uma ótima ferramenta para ter por perto e resolve uma enorme variedade de casos de uso
Por exemplo, meu Pi4 expõe o Dropbox na rede interna por meio de um servidor FTP do rclone, e outro servidor FTP permite que a impressora de rede salve arquivos digitalizados. No mesmo equipamento, também rodo com rclone backups automáticos do armazenamento em nuvem da família e de amigos próximos. Na minha rede interna, o rclone é praticamente um salvador
Uso o Google Drive montado no desktop e no notebook, e no notebook o problema é que o sistema operacional vê o drive como local e o rclone não expira corretamente em erros de rede. Se um aplicativo tenta ler ou escrever no drive quando não estou conectado ao Wi-Fi, ele trava para sempre. Por exemplo, se eu deixar uma janela do Thunar aberta no XFCE, boa parte da interface pode ficar bloqueada
Conferi, e era FUSE
O Insync não é grande coisa e o Google Drive também não, mas, para algo de que se depende diariamente, sinto que é indispensável ter uma cópia local dos arquivos e sincronização imediata entre local e servidor. Especialmente quando a conexão com a internet é instável
É claro que, para oferecer suporte a criptografia do lado do cliente, o serviço em si quase não precisa fazer nada de especial
Para criptografia do lado do cliente, existe até um cliente S3 criptografado específico: https://docs.aws.amazon.com/amazon-s3-encryption-client/late...
Meu jeito favorito de usar o rclone é com rclone ncdu: https://rclone.org/commands/rclone_ncdu/
A maioria dos provedores de espaço em nuvem não mostra quanto espaço cada pasta e subpasta realmente ocupa, e é aí que o rclone ncdu se encaixa perfeitamente
Uso o rclone todos os dias. Em alguns casos, ele substituiu o sshfs
Envio o compartilhamento
$Archivedo meu servidor doméstico para a rsync.net e trago fotos da minha conta Google, da minha esposa, da minha mãe, do meu pai e das contas das crianças para o$Archive. Também reúno três contas em nuvem diferentes de$WORKno$Archivee depois envio tudo para a rsync.netEsta é realmente uma ferramenta de primeira linha
https://rclone.org/commands/rclone_mount/
Atualmente, o SSHFS não tem ninguém contribuindo de forma ativa e regular, e há vários problemas conhecidos
https://github.com/libfuse/sshfs#development-status
Para backups, vale a pena dar uma olhada também no Restic. rclone e Restic funcionam muito bem juntos
https://www.bobek.cz/blog/2020/restic-rclone/
Felizmente, existe https://github.com/creativeprojects/resticprofile para resolver esse problema
Não gosto de abordagens em que alguém presume que seu próprio julgamento é o melhor do mundo em qualquer situação e que os outros estão errados
Eu sei o que estou fazendo e tenho motivos muito válidos para não querer criptografar meus backups
O Restic poderia fazer backups criptografados por padrão, mas permitir uma opção como
--do-not-encryptA arrogância dos desenvolvedores é impressionante, e por isso não vou usar o Restic. É uma pena, porque é uma solução de backup muito boa
Melhor experimentar o Borg
Várias máquinas fazem backup de hora em hora para um servidor local com Restic, e sincronizo esses backups diariamente para o S3 com rclone
Assim, reduzo o número de operações de leitura/escrita, a restauração fica mais rápida e consigo limitar a uma única máquina o acesso ao S3
https://github.com/gilbertchen/duplicacy
O Rclone oferece suporte a muitos backends de armazenamento e também fornece o backend crypt, que permite criptografar qualquer backend de armazenamento
https://rclone.org/overview/
https://rclone.org/crypt/
Gosto do fato de a página inicial destacar com confiança que sempre faz verificação de checksum
No passado, fiquei surpreso ao ver quantas ferramentas pulam essa etapa. Claro que isso deixa tudo mais lento, mas, se você está sincronizando entre serviços de armazenamento em nuvem, é bem provável que realmente queira verificar os checksums
Alguém analisou o cliente open source, fez engenharia reversa da API do Proton Drive e criou um plugin para o Rclone
Atualmente, é a única forma de usar o Proton Drive no Linux
O Rclone é uma ferramenta quase mágica, que já usei para várias finalidades diferentes
Da última vez que verifiquei, ele não usava o AWS SDK ou tinha restrições de versão do Go, então não era possível usar todas as configurações de
.aws/configAinda assim, por ser uma ferramenta multifuncional, dá para entender até certo ponto que nem todos os recursos de todos os backends sejam suportados
A documentação tem muitos avisos sobre recursos sem manutenção e experimentais, como caching. Os avisos em si são justos, mas não deixam claras as limitações específicas
Gosto bastante do Rclone. Quando pessoas sem muita familiaridade técnica colocam muitos dados em nuvens de consumo/empresariais e você precisa, de algum jeito, trazê-los para um servidor para processamento adicional, ele é uma ferramenta valiosa
Quando há muitos dados e a internet de casa não é boa, ele também é excelente para transferências diretas entre nuvens. Basta colocar o rclone em um servidor com boa rede e executá-lo dentro do tmux; a tarefa continua rodando mesmo que meu computador não fique ligado
nohup /usr/bin/rclone ... &>/dev/null &Se você executar assim e depois fizer logout, ele continuará rodando