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.