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ê.