Backup Linux com Rsync: Guia Completo + Interfaces Gráficas

Proteja seus dados importantes! Realizar backups dos seus dados via linha de comando no Linux é crucial. Vamos usar o comando `rsync` para essa tarefa, e exploraremos algumas interfaces gráficas que facilitam seu uso.

Existem várias formas de criar cópias de segurança dos seus arquivos, mas o objetivo aqui é apresentar um método robusto, adaptável e seguro para proteger suas informações. O `rsync` foi escolhido devido a seus algoritmos eficientes, que calculam as diferenças entre arquivos nas pastas de origem e destino. Essa abordagem transfere apenas as modificações entre as versões de um arquivo, evitando a transferência do arquivo inteiro sempre que possível.

Essa eficiência, combinada com sua comprovada confiabilidade em cópias de arquivos e sincronização de pastas desde os anos 90, torna o `rsync` uma excelente opção para criar backups a partir da linha de comando no Linux.

Além disso, existem softwares independentes que funcionam como interfaces para o `rsync`. Eles oferecem interfaces gráficas (GUIs) para o `rsync`, que podem ser mais acessíveis para alguns usuários.

Quanto mais fácil e rápido for criar um backup, maiores serão as chances de você realmente fazê-lo regularmente.

Utilizando o `rsync` com um Disco Rígido Externo

Para fazer um backup dos seus dados em um disco rígido externo, ele precisa estar conectado e acessível. Se você consegue gravar nele, o `rsync` também poderá. Neste exemplo, um disco rígido externo USB chamado SILVERXHD (abreviação para “Silver eXternal Hard Drive”) está conectado a um computador Linux e foi montado automaticamente.

Você precisará descobrir o caminho para a unidade. No ambiente GNOME, abra o explorador de arquivos Nautilus e procure o nome da unidade na barra lateral.

Ao passar o cursor do mouse sobre o nome da unidade externa, uma dica exibirá o caminho da unidade.

Nesse exemplo, a dica indica que o ponto de montagem para o sistema de arquivos na unidade externa é “/media/dave/SILVERXHD”.

Se o seu explorador de arquivos não mostrar o caminho, navegue até a unidade externa e abra um terminal nesse local. Use o comando `pwd` para exibir o caminho na janela do terminal.

Copiando o Conteúdo da Pasta de Origem

Para usar o `rsync` e copiar o conteúdo de uma pasta para o destino do backup, use o seguinte comando:

A opção `-r` (recursiva) faz com que o `rsync` copie todas as subpastas e seus conteúdos. Note que existe uma barra “/” no final de “SILVERXHD”, mas ela foi movida para a linha seguinte na captura de tela.

rsync -r /home/dave/Documents/ /media/dave/SILVERXHD/

A cópia dos arquivos será realizada e você retornará ao prompt da linha de comando.

Ao verificar a unidade USB externa, notamos que as pastas que estavam na pasta Documentos foram copiadas para a raiz da unidade externa.

ls

Copiando a Pasta de Origem e seu Conteúdo

Se você desejar que a pasta Documentos e seu conteúdo fossem copiados para a unidade externa, remova a “/” do final de “/home/dave/Documents” no comando, assim:

rsync -r /home/dave/Documents /media/dave/SILVERXHD/

Para evitar confusão, as duas pastas previamente copiadas foram removidas da unidade externa antes da execução desse segundo comando.

Após a segunda cópia ser concluída e a unidade externa ser verificada novamente, observamos que a pasta Documentos foi copiada. Seu conteúdo está dentro dessa pasta e não na raiz da unidade externa.

Copiando para uma Pasta de Destino Específica

Para copiar para uma pasta específica no disco rígido de destino, adicione o nome dessa pasta ao caminho de destino. Suponha que você deseja copiar o conteúdo da pasta “/home/dave/Documents” para uma pasta chamada “backups” na unidade externa.

Isso seria feito com o seguinte comando:

rsync -r /home/dave/Documents/ /media/dave/SILVERXHD/backups/

Ao verificar a unidade externa, vemos que a pasta “backups” foi criada e, dentro dela, está o conteúdo da pasta “/home/dave/Documents”.

ls
ls backups

Preservando a Propriedade e Permissões dos Arquivos

Utilize a opção `-a` (arquivo) para manter os atributos dos arquivos, como datas de modificação, propriedade, permissões de acesso e outros, para arquivos copiados, links simbólicos e arquivos de bloqueio especiais.

rsync -ra /home/dave/Documents/ /media/dave/SILVERXHD/backups/

Usando o Modo Detalhado

A opção `-v` (verbose) faz com que o `rsync` liste os arquivos durante a cópia.

rsync -rav /home/dave/Documents/ /media/dave/SILVERXHD/backups/

Um resumo do backup é apresentado após a conclusão da cópia.

Enviados: bytes transferidos para o destino.
Recebidos: bytes recebidos no host.
Bytes/s: taxa de transferência efetiva.
Tamanho total: tamanho dos dados que seriam enviados se o `rsync` não fosse usado. Em execuções subsequentes, o `rsync` transferirá apenas as diferenças dos arquivos. Este número representará os dados que não precisaram ser transferidos.
Aceleração: relação entre a quantidade de dados que precisou ser enviada e o tamanho total dos dados existentes. Se o `rsync` precisar copiar todos os arquivos por completo (na primeira execução, por exemplo), a aceleração será 1.0. Nas próximas vezes que o `rsync` for usado, ele otimizará as transferências, enviando apenas as diferenças entre os arquivos. Arquivos sem alterações serão ignorados. O valor da aceleração representará a proporção entre a pequena quantidade de dados que precisou ser transferida e o tamanho total dos arquivos.

Utilizando a Opção de Progresso

A opção `-P` (progresso) faz com que o `rsync` exiba um relatório de progresso após cada arquivo ser copiado.

rsync -raP /home/dave/Documents/ /media/dave/SILVERXHD/backups/

Informações detalhadas podem ser visualizadas entre cada arquivo copiado.

As informações exibidas são:
Tamanho do byte: dados transferidos para esse arquivo.
Porcentagem: porcentagem do arquivo transferido.
B/s: taxa de transferência de dados.
Tempo restante: tempo estimado para transferir este arquivo.
xfr#: número de arquivos transferidos até o momento.
to-chk: número de arquivos restantes a serem verificados pelos algoritmos de otimização.

Aumentando a Velocidade

Para acelerar as transferências, use a opção `-z` (compressão). Isso compacta o arquivo durante a transferência, mas o armazena descompactado no diretório de destino.

A opção de compressão não traz grandes benefícios em transferências envolvendo muitos arquivos pequenos. No entanto, para coleções de arquivos maiores, pode reduzir o tempo de transferência significativamente.

Também usamos a opção `–partial`. O `rsync` normalmente exclui arquivos parcialmente transferidos devido a falhas na rede ou interrupções. A opção `–partial` força o `rsync` a deixar esses arquivos no destino. Ao executar o `rsync` novamente, não será necessário transferir as partes já copiadas.

É importante notar que essa opção pode não ser desejável caso haja risco de alguém confundir arquivos parcialmente transferidos com arquivos completos.

rsync -ravz  --partial /home/dave/Documents/ /media/dave/SILVERXHD/backups/

Nesse exemplo, os ganhos são marginais.

A taxa de aceleração melhorou, mas em apenas dois centésimos de um por cento! Em um cenário real, suas melhorias de velocidade serão muito mais significativas.

Usando o `rsync` em uma Rede

Até agora, usamos um disco USB externo. Para usar um local de rede como destino do backup, utilize o caminho desse local na linha de comando. Existe um dispositivo de armazenamento conectado à rede (NAS) na rede em que este artigo foi pesquisado.

Podemos usar o mesmo método que usamos antes para identificar o caminho para o NAS, passando o mouse sobre a conexão desse dispositivo no Nautilus.

Não existem opções especiais para backup em rede; as opções já usadas são suficientes.

rsync -ravz  --partial /home/dave/Documents/ /media/dave/NAS/dave/backups/

Não há alteração no formato da saída.

Sem surpresas, há uma melhoria notável no número de Bytes/s.

Se executarmos o `rsync` mais uma vez, podemos observar que não há arquivos para transferir pois não houve alterações, mas alguns bytes ainda são transferidos de um lado para outro. Essa é a quantidade de dados que precisa ser transferida para comparar a lista de arquivos no destino com a lista de arquivos na origem.

A taxa de aceleração é muito melhor nesse caso. Na prática, suas taxas de desempenho estarão entre as duas leituras apresentadas.

Usando o `rsync` via SSH

O `rsync` também permite fazer backups através de uma conexão SSH. É necessário informar o nome da conta do usuário e o endereço SSH na linha de comando. Aqui, usamos um nome de rede, mas você também pode utilizar um endereço IP.

Observe o “:” entre as informações de conexão SSH e o início do caminho da rede no destino remoto.

rsync -ravz  --partial /home/dave/Documents/ [email protected]:/home/dave/Backups/

Será solicitada a senha da conta de usuário na máquina remota. Essa não é a sua senha na máquina de origem.

O backup será finalizado normalmente. A taxa de transferência não é tão rápida quanto uma conexão de rede regular, devido à criptografia e descriptografia que ocorrem na conexão de shell segura.

Automatizando seus Backups

Podemos criar backups automatizados facilmente, adicionando entradas ao arquivo crontab.

crontab -e

Vamos configurar um backup automatizado para ser executado todos os dias às 04:30 (se o computador estiver ligado nesse horário). A sintaxe do comando `rsync` permanece a mesma.

Use `Ctrl + O` para salvar as alterações no arquivo e `Ctrl + X` para fechar o editor nano.

Interfaces Amigáveis para o `rsync`

Usuários que não se sentem confortáveis com a linha de comando podem utilizar alguns programas que oferecem interface gráfica (GUI) para o `rsync`. Dois exemplos são luckyBackup e Grsync. Ambos os programas permitem selecionar várias opções do `rsync` através da interface do usuário.

O programa Grsync tem como foco ser uma interface visual para o `rsync`, oferecendo acesso fácil às opções e adicionando um conjunto limitado de novas funcionalidades.

Uma das janelas de configurações do Grsync.

Já o programa luckyBackup é muito mais do que uma interface para o `rsync`. Ele é um programa de backup que usa o `rsync` nos bastidores. Por exemplo, o luckyBackup pode fazer vários “instantâneos” do seu backup, permitindo que você “reverta” para versões anteriores dos arquivos.

Uma das janelas de configuração do luckyBackup.

Instalando o Grsync

Para instalar o Grsync no Ubuntu, utilize o seguinte comando:

sudo apt-get install grsync

Para instalar o Grsync no Fedora, utilize este comando:

sudo dnf install grsync

Para instalar o Grsync no Manjaro, use este comando:

sudo pacman -Syu grsync

Instalando o luckyBackup

Para instalar o luckyBackup no Ubuntu, utilize o seguinte comando:

sudo apt-get install luckybackup

Para instalar o luckyBackup no Fedora, use este comando:

sudo dnf install luckybackup

No Manjaro, você deve instalar o luckyBackup a partir do Arch User Repository (AUR). Isso pode ser feito utilizando o gerenciador de pacotes pamac.

Não Arrisque: Faça Backup dos Seus Dados Frequentemente

Backups são essenciais. Faça backup regularmente, em diversos locais e em diferentes mídias. Uma vez configurado, o `rsync` pode fazer tudo isso para você.