RDIFF -BACKUP - Uma ferramenta de backup incremental remota para Linux

RDIFF -BACKUP - Uma ferramenta de backup incremental remota para Linux

rdiff-backup é um script Python poderoso e fácil de usar para backup incremental local/remoto, que funciona em qualquer sistema operacional POSIX, como Linux, Mac OS X ou Cygwin. Reúne as características notáveis ​​de um espelho e um backup incremental.

Significativamente, preserva os subdiretos, arquivos de dev, links rígidos e atributos críticos de arquivo, como permissões, propriedade UID/GID, tempos de modificação, atributos estendidos, ACLs e garfos de recursos. Ele pode funcionar em um modo de largura de banda eficiente em um tubo, de maneira semelhante à popular ferramenta de backup do RSYNC.

rdiff-backup backup de um único diretório para outro sobre uma rede usando SSH, implicando que a transferência de dados é criptografada. O diretório de destino (no sistema remoto) acaba com uma cópia exata do diretório de origem, no entanto, as diferenças reversas extras são armazenadas em um subdiretório especial no diretório de destino, possibilitando a recuperação de arquivos perdidos há algum tempo.

Dependências

Para usar o RDIFF-Backup no Linux, você precisará dos seguintes pacotes instalados em seu sistema:

  • Python V2.2 ou mais tarde
  • Librsync v0.9.7 ou mais tarde
  • Os módulos Pylibacl e Pyxattr Python são opcionais, mas necessários para a lista de controle de acesso POSIX (ACL) e suporte de atributo estendido, respectivamente.
  • RDIFF-Backup-Statistics requer Python V2.4 ou mais tarde.

Como instalar o rdiff-backup no Linux

Importante: Se você estiver operando em uma rede, precisar.

O script já está presente nos repositórios oficiais das distribuições principais do Linux, basta executar o comando abaixo para instalar o rdiff-backup, bem como suas dependências:

Intall Rdiff-backup no Ubuntu

Para instalar Rdiff-backup sobre Ubuntu focal ou Bullseye Debian ou mais recente (tem 2.0).

$ sudo apt-get update $ sudo apt-get install libsync-dev rdiff-backup 

Para instalar Rdiff-backup No Ubuntu Backports para versões mais antigas (precisa de um 2 backported.0).

$ sudo add-aprop-repository ppa: rdiff-backup/rdiff-backup-backports $ sudo apt update $ sudo apt install rdiff-backu 

No CentOS/Rhel 8

Para instalar o rdiff-backup no CentOS e Rhel 8 (do COPR).

$ sudo yum install yum-plugin-copr epel-lançamento $ sudo yum copr atable Frankcrawford/rdiff-backup $ sudo yum install rdiff-backup 

No CentOS/Rhel 7

Para instalar o rdiff-backup no CentOS e Rhel 7 (do COPR).

$ sudo yum install yum-plugin-copr epel-lançamento $ sudo yum copr atable Frankcrawford/rdiff-backup $ sudo yum install rdiff-backup 

No CentOS/Rhel 6

$ sudo yum install centos-libe-scl $ sudo yum install rh-python36 gcc libacl-devel $ scl ativar rh-python36 bash $ sudo pip install rdiff-backup pyxattr pylibacl $ eco 'exec scl rhpytypon36-rdiff-backup "[Email protegido]" '| sudo tee/usr/bin/rdiff-backup $ sudo chmod +x/usr/bin/rdiff-backup 

Em Fedora

Para instalar o rdiff-backup no Fedora 32+.

$ sudo dnf install rdiff-backup 

Como usar o rdiff-backup no Linux

Como eu mencionei antes, rdiff-backup Usa o SSH para conectar -se a máquinas remotas em sua rede, e a autenticação padrão no SSH é o método de nome de usuário/senha, que normalmente requer interação humana.

No entanto, para automatizar tarefas como backups automáticos com scripts e além, você precisará configurar o login sem senha do SSH usando as teclas SSH, porque as teclas SSH aumentam a confiança entre dois servidores Linux para facilitar a sincronização de arquivos ou transferência.

Depois de configurar o login sem senha SSH, você pode começar a usar o script com os seguintes exemplos.

Arquivos de backup para uma partição diferente

O exemplo abaixo vai fazer backup do /etc diretório em um Cópia de segurança Diretório em outra partição:

$ sudo rdiff-backup/etc/mídia/aaronkilik/data/backup/mint_etc.cópia de segurança 
Arquivos de backup para uma partição diferente

Para excluir um diretório específico, bem como suas subdiretas, você pode usar o --excluir Opção da seguinte forma:

$ sudo rdiff-backup --exclude/etc/cockpit --exclude/etc/bluetooth/mídia/aaronkilik/data/backup/mint_etc.cópia de segurança 

Podemos incluir todos os arquivos de dispositivo, arquivos FIFO, arquivos de soquete e links simbólicos com o --Inclua arquivos especiais opção como abaixo:

$ sudo rdiff-backup --nclude-special-files --exclude/etc/cockpit/mídia/aaronkilik/data/backup/mint_etc.cópia de segurança 

Existem outros dois sinalizadores importantes que podemos definir para a seleção de arquivos; --Max-File-Size tamanho que exclui arquivos maiores que o tamanho fornecido em bytes e --Min-size Tamanho que exclui arquivos menores que o tamanho fornecido em bytes:

$ sudo rdiff-backup-max-size 5m --include-special-files --exclude/etc/cockpit/mídia/aaronkilik/data/backup/mint_etc.cópia de segurança 

Backup de arquivos remotos no servidor Linux local

Para os fins desta seção, usaremos:

Servidor remoto (Tecmint): 192.168.56.102 servidor de backup local (backup): 192.168.56.10 

Como afirmamos antes, você deve instalar a mesma versão de rdiff-backup Em ambas as máquinas, agora tente verificar a versão em ambas as máquinas da seguinte maneira:

$ rdiff -backup -v 
Verifique a versão RDIFF nos servidores

No servidor de backup, crie um diretório que armazenará os arquivos de backup como assim:

# mkdir -p /backups 

Agora, no servidor de backup, execute os seguintes comandos para fazer um backup de diretórios /var/log/ e /raiz do servidor Linux remoto 192.168.56.102 em /backups:

# rdiff-backup [email protegido] ::/var/log//backups/192.168.56.102_LOGS.Backup # rdiff-backup [email protegido] ::/root//backups/192.168.56.102_ROOTFILES.cópia de segurança 

A captura de tela abaixo mostra o arquivo root no servidor remoto 192.168.56.102 e os arquivos backup no servidor traseiro 192.168.56.10:

Diretório remoto de backup no servidor local

Tome nota do Rdiff-Backup-Data diretório criado no cópia de segurança Diretório como visto na captura de tela, ele contém dados vitais sobre o processo de backup e arquivos incrementais.

RDIFF -BACKUP - Arquivos de processo de backup

Agora, no servidor 192.168.56.102, Arquivos adicionais foram adicionados ao diretório raiz, como mostrado abaixo:

Verifique o diretório de backup

Vamos executar o comando de backup mais uma vez para obter os dados alterados, podemos usar o -v [0-9] (onde o número especifica o nível de verbosidade, o padrão é 3 que é silencioso) opção para definir o recurso de verbosidade:

# rdiff -backup -v4 [email protegido] ::/root//backups/192.168.56.102_ROOTFILES.cópia de segurança 
Backup incremental com resumo

E listar o número e a data dos backups incrementais parciais contidos no /backups/192.168.56.102_ROOTFILES.cópia de segurança Diretório, podemos executar:

# rdiff -backup -l /backups /192.168.56.102_ROOTFILES.cópia de segurança/ 

Automatando o backup do RDIFF usando Cron

Podemos imprimir estatísticas de resumo após um backup bem -sucedido com o --Estatística de impressão. No entanto, se não definirmos esta opção, as informações ainda estarão disponíveis no arquivo de estatísticas da sessão. Leia mais sobre esta opção na seção de estatísticas da página do homem.

E a -Schema remoto A bandeira nos permite especificar um método alternativo de conectar a um computador remoto.

Agora, vamos começar criando um cópia de segurança.sh script no servidor de backup 192.168.56.10 do seguinte modo:

# cd ~/bin # vi backup.sh 

Adicione as seguintes linhas ao arquivo de script.

#!/bin/Bash #Este é um script de backup de utilitário rdiff-backup #backup comando rdiff-backup --print-estatística-remote-schema 'ssh -c %s "sudo/usr/bin/rdiff-backup--server- -Restrit-Read-somente/"'[Email Protected] ::/var/logs/backups/192.168.56.102_LOGS.#CHECKING RDIFF-BACKUP SUCESSO/STATUS DE ERRO = $? Se [$ status != 0]; Em seguida.Arquivo de log eco "RDIFF -BACKUP Código de saída: $ status - comando sem sucesso" >> ~/backup.registro; saída 1; FI #Remove Arquivos de backup incremental com mais de um mês RDIFF-BACKUP-Force-Renuve-Olner-Than 1M /Backups /192.168.56.102_LOGS.voltar 

Salve o arquivo e saia e execute o seguinte comando para adicionar o script ao Crontab no servidor de backup 192.168.56.10:

# Crontab -e 

Adicione esta linha para executar seu script de backup diariamente à meia -noite:

0 0 * * */root/bin/backup.sh> /dev /null 2> & 1 

Salve o Crontab e feche -o, agora temos sucesso automatizado o processo de backup. Verifique se está funcionando como esperado.

Leia a página do RDIFF-Backup Man para obter informações adicionais, opções de uso exaustivo e exemplos:

# homem rdiff-backup 

RDIFF-Backup Homepage: http: // www.NONGNU.org/rdiff-backup/

É isso por agora! Neste tutorial, mostramos como instalar e basicamente usar o rdiff-backup, um script python fácil de usar para backup incremental local/remoto no Linux. Compartilhe seus pensamentos conosco através da seção de feedback abaixo.