Como fazer backup do seu sistema Linux

Não arrisque a perda de dados. Faça backup de seus valiosos dados da linha de comando do Linux. Estaremos usando o comando rsync para isso, e até encontramos algumas interfaces gráficas opcionais agradáveis ​​para ele.

Existem muitas maneiras de fazer uma cópia de backup de seus arquivos. Queríamos mostrar a você uma maneira robusta, flexível e confiável de proteger seus dados. Escolhemos o rsync por causa de seu algoritmos bem respeitados que calculam as diferenças entre os arquivos no diretório de origem e no diretório de destino. Apenas as diferenças entre duas versões de um arquivo são transferidas, não o arquivo inteiro, se isso puder ser evitado.

Quando essa eficiência é combinada com seu sólido histórico na execução de cópias de arquivos e sincronizações de diretório desde meados da década de 1990, o rsync é um candidato perfeito para a criação de backups a partir da linha de comando do Linux.

Além disso, existem programas de software independentes que atuam como front-end para rsync. Eles fornecem interfaces gráficas de usuário (GUIs) para rsync que algumas pessoas podem achar mais fácil de usar.

Quanto mais simples e rápido for fazer um backup, maior a probabilidade de você fazê-lo.

Usando rsync com um disco rígido externo

Para fazer uma cópia de backup de seus dados em um disco rígido externo, o disco rígido deve estar montado e acessível a você. Se você pode escrever nele, o rsync também pode. Neste exemplo, um disco rígido externo USB denominado SILVERXHD (para “Silver eXternal Hard Drive”) está conectado ao computador Linux. Ele foi montado automaticamente pelo sistema operacional.

Você precisará saber o caminho para a unidade. No GNOME, abra o navegador de arquivos Nautilus e localize o nome da unidade na barra lateral.

Passe o ponteiro do mouse sobre o nome da unidade externa e uma dica de ferramenta mostrará o caminho para a unidade.

Neste exemplo, a dica de ferramenta nos informa que o ponto de montagem para o sistema de arquivos na unidade externa é “/ media / dave / SILVERXHD.”

Se o seu navegador de arquivos não fizer isso, navegue até a unidade externa e abra uma janela de terminal nesse local. Use o comando pwd para imprimir o caminho para a janela do terminal.

Copiando o conteúdo do diretório de origem

Para usar o rsync para copiar o conteúdo de um diretório para o destino de backup, use o seguinte comando.

  Como usar o Nativefier para transformar sites em aplicativos Linux

A opção -r (recursiva) faz com que o rsync copie todos os subdiretórios aninhados e seus conteúdos. Observe que há uma barra “/” no final da palavra “SILVERXHD”, mas ela passou para a próxima linha na captura de tela.

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

A cópia do arquivo ocorre e você retorna ao prompt da linha de comando.

Se olharmos para a unidade USB externa, vemos que os diretórios que estão no diretório Documentos foram copiados para a raiz da unidade externa.

ls

Copiando o diretório de origem e seu conteúdo

Se você queria que o diretório Documentos e seu conteúdo fossem copiados para o drive externo, remova a “/” do final de “/ home / dave / Documentos” na linha de comando, assim:

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

Para evitar confusão, removi os dois diretórios anteriormente copiados da unidade externa antes que este segundo comando fosse executado.

Se deixarmos a segunda cópia ser concluída e examinarmos novamente a unidade externa, veremos que o diretório Documentos foi copiado. Seu conteúdo está dentro desse diretório. Eles não estão na raiz da unidade externa.

Copiando para um diretório de destino específico

Para copiar para um diretório específico no disco rígido de destino, adicione o nome do diretório ao caminho de destino. Vamos supor que desejamos copiar o conteúdo do diretório “/ home / dave / Documents” para um diretório chamado “backups” na unidade externa.

Faríamos isso com o seguinte comando.

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

Verificando na unidade externa, podemos ver que o diretório de backups foi criado, e dentro desse diretório está o conteúdo do diretório “/ home / dave / Documents”.

ls
ls backups

Preservando a propriedade e as permissões do arquivo

Use a opção -a (arquivo) para preservar os atributos do arquivo, como datas de modificação, propriedade do arquivo, permissões de acesso e mais, 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) força o rsync a listar os arquivos conforme eles estão sendo copiados.

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

Um resumo do backup é apresentado quando a cópia é concluída.

Enviado: os bytes transferidos para o destino.
Recebido: os bytes recebidos no host.
Bytes / s: é a taxa de transferência efetiva.
Tamanho total: representa o tamanho dos dados que seriam enviados se você não estivesse usando o rsync. Nas execuções subsequentes do rsync, ele apenas transferirá as diferenças do arquivo. Esta figura representará os dados que não precisaram ser transferidos.
Aceleração: Esta é a relação entre a quantidade de dados que teve que ser enviada e a quantidade total de dados que existe. Se o rsync precisar copiar todos os arquivos por completo (na primeira vez em que for executado, por exemplo), a aceleração será 1.0. Da próxima vez que o rsync for usado, ele otimizará as transferências. Ele enviará apenas as diferenças entre os arquivos, não os arquivos inteiros. Arquivos sem alterações serão ignorados. O valor do aumento de velocidade representará a proporção entre a pequena quantidade de dados que foi necessária para ser transferida e o tamanho total dos arquivos.

  Como instalar o Sublime Merge no Linux

Usando a opção de progresso

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

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

As informações fornecidas podem ser vistas entre cada arquivo copiado.

As informações fornecidas são:

Tamanho do byte: dados transferidos para este arquivo.
Porcentagem: Porcentagem do arquivo transferido.
B / s: Taxa de transferência de dados.
Tempo restante: tempo estimado restante para transferir este arquivo.
xfr #: O número de arquivos transferidos até agora.
to-chk: O número de arquivos deixados para serem verificados e verificados pelos algoritmos de otimização.

Adicionando mais velocidade

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

A opção de compactação não trará benefícios significativos para transferências envolvendo muitos arquivos pequenos. Para coleções de arquivos maiores, pode reduzir o tempo de transferência de uma forma significativa.

Também estamos usando a opção –parcial aqui. O rsync irá deletar arquivos parcialmente transferidos causados ​​por falhas de rede ou outras interrupções. A opção –partial força o rsync a deixar os arquivos parcialmente transferidos no destino. Quando o rsync é executado, não será necessário voltar a transferir as partes dos arquivos parcialmente transferidos.

Observe que você pode não querer usar esta opção se houver o risco de alguém confundir os arquivos parcialmente transferidos com arquivos completamente transferidos.

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

Em nosso exemplo, os benefícios são marginais.

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

Usando rsync em uma rede

Até agora, buscamos uma unidade USB externa. Para usar um local de rede como destino do backup, use o caminho para esse 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 truque que usamos anteriormente para identificar o caminho para o NAS, passando o mouse sobre a conexão desse dispositivo no Nautilus.

Não há opções especiais para backup em uma rede; essas são todas as opções que já usamos.

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

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

Não é de surpreender que haja uma melhora significativa no número de Bytes / s.

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

  Como tornar o terminal Linux amigável com o ColorLS

A taxa de aceleração é uma ordem de magnitude melhor neste caso. Na prática, suas taxas de desempenho estarão em algum lugar entre nossas duas leituras pseudo-artificiais.

Usando rsync sobre SSH

O rsync oferece suporte para backup por meio de uma conexão SSH. Precisamos fornecer o nome da conta do usuário e a localização SSH na linha de comando. Estamos usando um nome de rede aqui, mas você também pode usar um endereço IP.

Observe o “:” entre os detalhes da 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 do usuário na máquina remota. Esta não é sua senha na máquina de origem.

O backup será concluído normalmente. A taxa de transferência não é tão rápida quanto uma conexão de rede regular, por causa da criptografia e descriptografia que ocorrem na conexão de shell segura.

Automatizando seus backups

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

crontab -e

Vamos configurar um backup automatizado para ser executado todos os dias às 04:30 (se o computador estiver ligado nessa hora, é claro). A sintaxe do comando rsync não muda em nada.

Ctrl + O gravará suas alterações no arquivo e Ctrl + X fechará o editor nano.

Colocando uma cara amigável no Rsync

As pessoas que não se sentem confortáveis ​​com a linha de comando podem usar um dos vários programas que colocam uma interface gráfica do usuário (GUI) no rsync. Dois bons exemplos são luckyBackup e Grsync. Ambos os programas permitem que muitas das opções de rsync sejam selecionadas por meio da interface do usuário.

O programa Grsync concentra-se em ser um invólucro visual para o rync. Ele fornece acesso fácil às opções de rsync e adiciona apenas um conjunto limitado de novas funcionalidades.

Uma das caixas de diálogo de configurações do Grsync,

O programa luckyBackup é muito mais do que um simples invólucro para rsync. É um programa de backup que usa rsync nos bastidores. Por exemplo, luckyBackup pode fazer vários “instantâneos” do seu backup. Você pode então “reverter” para as versões dos arquivos em qualquer um dos instantâneos.

Uma das caixas de diálogo de configuração do luckyBackup.

Para instalar o Grsync

Para instalar o Grsync no Ubuntu, use este comando:

sudo apt-get install grsync

Para instalar o Grsync no Fedora, use este comando:

sudo dnf install grsync

Para instalar o Grsync no Manaro, use este comando:

sudo pacman -Syu grsync

Para instalar o luckyBackup

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

sudo apt-get install luckybackup

Para instalar o luckyBackup no Fedora, use o seguinte comando:

sudo dnf install luckybackup

Em Manjaro, você deve instalar o luckyBackup do Arch User Repository (AUR). Você pode fazer isso com o gerenciador de pacotes pamac.

Não arrisque, faça backup de seus dados frequentemente

Os backups são absolutamente vitais. Faça backup com freqüência, faça backup em vários locais e em diferentes mídias. Uma vez configurado, o rsync pode fazer tudo isso por você.