3 pontos por GN⁺ 2024-01-28 | 1 comentários | Compartilhar no WhatsApp
  • 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, mv e mount, 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
    • rsync
    • cp
    • mv
    • mount
    • ls
    • ncdu
    • tree
    • rm
    • cat
  • 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

 
GN⁺ 2024-01-28
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...

    • Já conheci o Nick pessoalmente, e ele era mesmo uma ótima pessoa
  • 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 /foo do Dropbox. Isso é bom porque provedores como Dropbox ou S3 ainda não oferecem criptografia de ponta a ponta nativa
    No geral, o rclone é uma ótima ferramenta para ter por perto e resolve uma enorme variedade de casos de uso

    • É muito fácil criar um servidor FTP temporário que disponibiliza armazenamento local ou em nuvem
      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
    • Ele é realmente ótimo para esse uso, mas é preciso garantir que a rede seja estável
      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
    • Só dizer “montar armazenamento em nuvem em um disco local” não deixa isso imediatamente claro. Eu estava curioso se, para transformar chamadas do sistema de arquivos em chamadas de API, ele usava FUSE, 9p, um driver ou algum outro mecanismo
      Conferi, e era FUSE
    • Tenho curiosidade se alguém já usou isso com sucesso como substituto de aplicativos de sincronização bidirecional, como o Insync para Google Drive
      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
    • Quando se fala em criptografia “e2e”, fico curioso se querem dizer criptografia do lado do cliente. O S3 oferece suporte tanto a criptografia do lado do cliente quanto do lado do servidor
      É 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

    • Gosto do ncdu, e a integração com o rclone é muito prática
  • Uso o rclone todos os dias. Em alguns casos, ele substituiu o sshfs
    Envio o compartilhamento $Archive do 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 $WORK no $Archive e depois envio tudo para a rsync.net
    Esta é realmente uma ferramenta de primeira linha

  • 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/

    • A principal desvantagem do Restic puro é que, em geral, você acaba escrevendo seus próprios scripts de shell para gerenciar a configuração. O Restic em si não tem esse recurso
      Felizmente, existe https://github.com/creativeprojects/resticprofile para resolver esse problema
    • Como precaução adicional, também vale considerar tornar os backups somente anexáveis: https://ruderich.org/simon/notes/append-only-backups-with-re...
    • A equipe do Restic rejeita backups não criptografados pelo motivo de “segurança”
      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-encrypt
      A 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
    • Uso os dois
      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
    • Também vale conferir o duplicacy: https://twitter.com/ArtemR/status/1159392251992145920
      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

    • O depoimento no topo dizendo que é “indistinguível de magia” me pareceu um pouco arrogante, mas agora estou verificando se há evidências extraordinárias para essa afirmação extraordinária
  • 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

    • Eu não sabia que o rclone tinha suporte ao Proton Drive. Assinei o plano Visionary quando ele foi reaberto por um breve período, então agora também vou poder usar esse armazenamento
  • 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/config
    Ainda 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

    • O tmux não é estritamente necessário
      nohup /usr/bin/rclone ... &>/dev/null &
      Se você executar assim e depois fizer logout, ele continuará rodando