Como fazer backup do seu sistema Linux

Disco rígido externo conectado ao laptop via USB
Yuriy Seleznev / Shutterstock.com

Não arrisque a perda de dados. Faça backup de seus valiosos dados da linha de comando do Linux. Estaremos usando o rsynccomando 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. Nós escolhemos rsyncpor causa de seus algoritmos 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, 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 as rsyncquais algumas pessoas podem achar mais fácil de usar.

Quanto mais simples e rápido for fazer um backup, maior será a probabilidade de você fazer isso.

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 para ele, então também pode rsync. 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.

dica para uma unidade externa

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 pwdcomando para imprimir o caminho para a janela do terminal.

Copiando o conteúdo do diretório de origem

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

Recomendado:  Os 10 melhores filmes de ação do Amazon Prime Video

A -ropção (recursiva) faz rsynccom que todos os subdiretórios aninhados e seus conteúdos sejam copiados. 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 / Documentos / / media / dave / SILVERXHD /

rsync -r / home / dave / Documentos / / media / dave / SILVERXHD / em uma janela de terminal

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

está em uma janela de terminal

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 a unidade externa, remova o “/” do final de “/ home / dave / Documentos” na linha de comando, assim:

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

rsync -r / home / dave / Documents / media / dave / SILVERXHD / em uma janela de terminal

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.

está em uma janela de terminal

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 / Documentos / / media / dave / SILVERXHD / backups /

rsync -r / home / dave / Documentos / / media / dave / SILVERXHD / backups / na janela do terminal

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

Saída de ls em uma janela de terminal

Preservando a propriedade e as permissões do arquivo

Use a -aopção (arquivar) 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 / Documentos / / media / dave / SILVERXHD / backups /

rsync -ra / home / dave / Documentos / / media / dave / SILVERXHD / backups / em uma janela de terminal

Usando o Modo Detalhado

A -vopção (detalhada) força rsynca listar os arquivos à medida que são copiados.

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

rsync -rav / home / dave / Documentos / / media / dave / SILVERXHD / backups / em uma janela de terminal

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

saída detalhada do rsync em uma janela de terminal

  • 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 rsync. Em execuções subsequentes, rsync ele apenas transferirá as diferenças do arquivo. Esta figura representará os dados que não precisaram ser transferidos.
  • Speedup : Esta é a relação entre a quantidade de dados que teve que ser enviada e a quantidade total de dados que existe. Se rsyncprecisar copiar todos os arquivos na íntegra (na primeira vez em que for executado, por exemplo), o speedup será 1.0. Quando  rsync for usado da próxima vez, 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 da aceleração representará a proporção entre a pequena quantidade de dados que foi necessária para ser transferida e o tamanho total dos arquivos.
Recomendado:  Como frisar seus próprios cabos Ethernet personalizados de qualquer comprimento

Usando a opção de progresso

A -Popção (progresso) rsyncgera um pequeno relatório de progresso após cada arquivo ser copiado.

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

rsync -raP / home / dave / Documentos / / media / dave / SILVERXHD / backups / em uma janela de terminal

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

Saída rsync com progresso em uma janela de terminal

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 que ainda precisam ser verificados e verificados pelos algoritmos de otimização.

Adicionando mais velocidade

Para acelerar as transferências, use a -zopção (compressã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 --partialopção aqui. rsyncirá deletar arquivos parcialmente transferidos causados ​​por falhas de rede ou outras interrupções. A --partialopção força rsynca deixar os arquivos parcialmente transferidos no destino. O tempo líquido 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 / Documentos / / media / dave / SILVERXHD / backups /

rsync -ravz --partial / home / dave / Documentos / / media / dave / SILVERXHD / backups / em uma janela de terminal

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

saída rsync em uma janela de terminal

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 para o backup, use o caminho para esse local na linha de comando. Há 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 / Documentos / / media / dave / NAS / dave / backups /

rsync -ravz --partial / home / dave / Documentos / / media / dave / NAS / dave / Backups / em uma janela de terminal

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

Recomendado:  Como proteger seu Google Drive no iPhone e iPad com o Face ID ou Touch ID

saída rsync em uma janela de terminal

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

Se executarmos  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.

saída do rsync sem arquivos para transferir em uma janela de terminal

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

rsyncsuporta 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 / dave@sulaco.local: / home / dave / Backups /

rsync -ravz --partial / home / dave / Documents / dave@sulaco.local: / home / dave / Backups / em uma janela de terminal

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

rsync através de uma conexão ssh em uma janela de terminal

O backup será concluído normalmente. A taxa de transferência não é tão rápida quanto uma conexão de rede normal, 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

crontab -e em uma janela de terminal

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 rsynccomando não muda em nada.

crontab aberto em nano em uma janela de terminal

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

Colocando uma cara amigável no Rsync

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

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

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

O luckyBackupprograma é muito mais do que um simples invólucro para rsync. É um programa de backup que usa rsyncnos bastidores. Por exemplo,  luckyBackuppode 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
Uma das caixas de diálogo de configuração do luckyBackup.

Para instalar o Grsync

Para instalar Grsyncno Ubuntu, use este comando:

sudo apt-get install grsync

sudo apt-get install grsync em uma janela de terminal

Para instalar Grsyncno Fedora, use este comando:

sudo dnf install grsync

sudo dnf install grsync

Para instalar Grsyncno Manaro, use este comando:

sudo pacman -Syu grsync

sudo pacman -Syu grsync em uma janela de terminal

Para instalar o luckyBackup

Para instalar luckyBackupno Ubuntu, use o seguinte comando:

sudo apt-get install luckybackup

sudo apt-get install luckybackup em uma janela de terminal

Para instalar luckyBackupno Fedora use o seguinte comando:

sudo dnf install luckybackup

sudo dnf install luckyback em uma janela de terminal

No Manjaro você deve instalar a luckyBackup partir do Arch User Repository (AUR). Você pode fazer isso com o pamacgerenciador de pacotes.

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. Depois de configurado, rsyncpode fazer tudo isso por você.