Backup no Google Drive via linha de comando no Linux: Use o rclone!

Embora não exista um aplicativo oficial do Google Drive para Linux, é possível efetuar backups no Google Drive utilizando o utilitário rclone diretamente pela linha de comando. Vamos mostrar como.

O Cenário do Google Drive no Linux

Apesar da promessa de suporte ao Linux, feita ainda em 2012, não há sinais de que o Google pretenda lançar um cliente nativo do Google Drive para este sistema. Existem algumas alternativas não oficiais, como Insync, overGrive e ODrive. Além disso, alguns exploradores de arquivos permitem a integração com o Google Drive, como o Arquivos do GNOME.

Esses aplicativos de terceiros são, em sua maioria, pagos, exigindo compra ou assinatura. Eles funcionam bem e não são caros. Inclusive, o overGrive oferece uma versão gratuita com funcionalidades limitadas.

Mas, e se você quisesse realizar backups via linha de comando? Ou integrar essa funcionalidade em scripts? Isso é viável com o rclone. Com ele, você pode fazer backup, baixar e sincronizar arquivos em mais de quarenta serviços de nuvem. É como um rsync para a nuvem.

Instalação do rclone

O rclone geralmente não está instalado por padrão em sistemas Linux. Felizmente, há um script de instalação que funciona na maioria das distribuições. O processo de instalação utiliza o curl. Em algumas distribuições, como o Fedora 31 e o Manjaro 18.1.0, o curl já estava instalado, mas no Ubuntu 18.04 LTS foi necessário instalá-lo.

Para instalar o curl no Ubuntu, use este comando:

sudo apt-get install curl

Após a instalação do curl, execute o seguinte comando para instalar o rclone:

curl https://rclone.org/install.sh | sudo bash

Ao final da instalação do rclone, você verá uma mensagem de sucesso.

O rclone já está instalado em seu computador Linux. O próximo passo é configurar e autorizar o rclone a acessar seu Google Drive.

Configurando uma Conexão Remota no rclone

Conexões com serviços de nuvem são chamadas de “remotas” no rclone. Precisamos criar uma para o Google Drive. Execute o comando abaixo para iniciar a configuração:

rclone config

O processo de configuração tem muitas etapas, mas muitas delas podem ser deixadas com seus valores padrão, apenas pressionando “Enter”.

O rclone informará que não há conexões remotas configuradas. Digite “n” e pressione “Enter” para criar uma nova conexão. Ele pedirá um nome. Vamos chamá-la de “google-drive”. Você pode usar o nome que desejar.

Um longo menu permite selecionar o tipo de armazenamento para o qual você está criando uma conexão remota.

Navegue pela lista até encontrar a entrada do Google Drive e observe o número correspondente.

Neste caso, é o número 13. Digite-o como o tipo de armazenamento e pressione “Enter”.

Será solicitado um ID de cliente de aplicativo do Google. Pressione “Enter” para aceitar o valor padrão.

Em seguida, será solicitado um segredo do cliente de aplicativo do Google.

Novamente, pressione “Enter”. Você deve fornecer o escopo de acesso que o rclone terá no seu Google Drive. Digite “1” e pressione “Enter”.

Para o “ID da pasta raiz”, pressione “Enter”.

No prompt “Credenciais da conta de serviço”, pressione “Enter”.

No prompt “Editar configuração avançada”, pressione “Enter”. No menu “Usar configuração automática”, digite “y” e pressione “Enter”.

Isso fará com que o rclone se conecte ao seu Google Drive e abra seu navegador, permitindo que você conceda a permissão para o rclone interagir com ele.

Na janela do navegador, clique na conta do Google que deseja usar.

Clique no botão “Permitir” para conceder acesso ao seu Google Drive ao rclone.

Após a autenticação, você verá a mensagem “Sucesso!” na janela do navegador. Você pode fechar o navegador e voltar à janela do terminal.

No prompt “Configurar isto como um drive de equipe”, digite “n” e pressione “Enter”.

No menu “Sim, Editar, Excluir”, digite “y” e pressione “Enter”.

No menu final, digite “q” e pressione “Enter”.

O Script de Backup do rclone

O rclone oferece muitas funcionalidades, mas isso significa que há muitas opções. O comando que apresentaremos a seguir copia arquivos do seu computador para o Google Drive. Esta é uma cópia unidirecional para a nuvem; não é uma sincronização bidirecional entre o Google Drive e o computador, embora o rclone também possa fazer isso. Vamos utilizá-lo como um backup externo básico.

Abra um editor de texto e digite (ou copie e cole) o seguinte código, salvando-o em seu computador com o nome gbk.sh. Você pode usar outro nome se preferir.

#!/bin/bash

/usr/bin/rclone copy --update --verbose --transfers 30 --checkers 8 --contimeout 60s --timeout 300s --retries 3 --low-level-retries 10 --stats 1s "/home/dave/Documents" "google-drive:LinuxDocs"

Eis o que cada parâmetro significa:

  • copy: Copia os arquivos do computador para o armazenamento remoto, ignorando arquivos já presentes no destino.
  • –update: Ignora arquivos no armazenamento remoto com um tempo de modificação mais recente do que o arquivo local.
  • –verbose: Exibe informações sobre cada arquivo transferido.
  • –transfers 30: Define o número de arquivos copiados simultaneamente.
  • –checkers 8: Número de “verificadores” executados em paralelo, monitorando transferências em andamento.
  • –contimeout 60s: Define o tempo limite para tentar conectar ao armazenamento remoto.
  • –timeout 300s: Se uma transferência ficar ociosa por este tempo, ela é considerada interrompida e desconectada.
  • –retries 3: Se houver este número de erros, a ação de cópia é reiniciada.
  • –low-level-retries 10: O número máximo de tentativas de baixo nível para operações com falha, como solicitações HTTP.
  • –stats 1s: O intervalo em que o rclone apresenta estatísticas sobre os arquivos transferidos (em segundos).
  • “/home/dave/Documents”: O diretório local que será copiado para o armazenamento remoto.
  • “google-drive:LinuxDocs”: O diretório de destino no armazenamento remoto. “google-drive” é o nome dado à conexão remota durante a configuração do rclone. Os dois pontos “:” separam o nome do armazenamento remoto do nome do diretório. Subdiretórios são separados pela barra “/”. Se o diretório de destino não existir, ele será criado.

Alguns desses valores são os padrões, mas os incluímos aqui para explicá-los. Assim, se precisar alterar um valor, você saberá qual parâmetro ajustar.

Torne o script executável com o seguinte comando:

chmod +x gbk.sh

Executando o Script de Backup

Nosso script de backup irá copiar a pasta “Documentos” para o Google Drive. Dentro desta pasta, temos alguns arquivos de partituras.

Iniciamos o script de backup com este comando:

./gbk.sh

As atualizações de estatísticas ocorrem a cada segundo (–stats 1s), e a saída é detalhada (–verbose), portanto, teremos bastante informação na tela. É útil ativar a saída detalhada para novos recursos, a fim de identificar problemas. Você pode diminuir a quantidade de informações quando tudo estiver funcionando corretamente.

Recebemos um resumo final informando que 60 arquivos foram transferidos sem erros. A transferência levou cerca de 24 segundos.

Vamos verificar no Google Drive o que aconteceu.

Um diretório “LinuxDocs” foi criado, o que é um bom sinal. Se abrirmos, veremos que todos os arquivos foram transferidos para o Google Drive.

Visualizando Arquivos no Google Drive com rclone

Podemos usar o rclone para visualizar o conteúdo da pasta no Google Drive, diretamente na janela do terminal:

rclone ls google-drive:/LinuxDocs

Apenas a Ponta do Iceberg

Poder executar este tipo de cópia diretamente da linha de comando é muito útil. É possível integrar o uso do armazenamento em nuvem em scripts, agendando-os com o cron.

O rclone tem uma vasta gama de comandos. Recomendamos que você consulte a documentação e o excelente site. Mal arranhamos a superfície aqui, e um pouco de estudo e prática com o rclone valerá a pena.

Tecnicamente falando, isso não é um verdadeiro backup, mas sim uma cópia externa dos seus arquivos e dados, o que já é algo positivo. No entanto, é apenas uma cópia dos arquivos e não oferece controle de versão ou outros recursos de backups mais completos.

Portanto, use o rclone em conjunto com outras técnicas de backup. Como uma camada adicional ao seu sistema de backup existente, o rclone é uma maneira simples de armazenar dados fora da sua residência ou escritório, o que é muito útil.