RSNAPSHOT (baseado em rsync) - Um utilitário de backup local/remoto do sistema de arquivos para Linux

RSNAPSHOT (baseado em rsync) - Um utilitário de backup local/remoto do sistema de arquivos para Linux

rsnapshot é um código aberto local / controlo remoto O utilitário de backup do sistema de arquivos foi escrito em Perl idioma que vantagem o poder de Rsync e Ssh programa para criar, backups incrementais programados de Linux/Unix Sistemas de arquivos, enquanto apenas ocupam o espaço de um único backup completo, além de diferenças e mantenha esses backups em local dirigir para diferente disco rígido, um externo USB Stick, uma unidade montada NFS ou simplesmente sobre a rede para outra máquina via Ssh.

Instale a ferramenta de backup RSNAPSHOT

Este artigo demonstrará como instalar, configurar e usar rsnapshot para criar incremental a cada hora, diário, semanalmente e por mês backups locais, bem como backups remotos. Para executar todas as etapas deste artigo, você deve ser raiz do utilizador.

Etapa 1: Instalando o backup RSNAPSHOT no Linux

Instalação de rsnapshot usando Yum e Apt pode difere um pouco, se você estiver usando chapéu vermelho e Debian distribuições baseadas.

Em Rhel/Centos

Primeiro você terá que instalar e ativar o repositório de terceiros chamado EPEL. Siga abaixo o link para instalar e ativar em seu RHEL/CENTOS sistemas. Fedora Os usuários não exigem configurações de repositório especial.

  1. Instale e habilite o repositório EPEL em RHEL/CENTOS 6/5/4

Depois de configurar as coisas, instale rsnapshot Da linha de comando como mostrado.

# yum install rsnapshot
Em Debian/Ubuntu/Linux Mint

Por padrão, rsnapshot incluído em UbuntuOs repositórios, para que você possa instalá -lo usando apt-get comando como mostrado.

# instalação apt-get rsnapshot

Etapa 2: Configuração de login sem senha SSH

Para fazer backup de servidores Linux remotos, seus servidor de backup rsnapshot será capaz de se conectar Ssh sem senha. Para conseguir isso, você precisará criar um Ssh chaves públicas e privadas para autenticar no rsnapshot servidor. Siga abaixo o link para gerar chaves públicas e privadas em seu rsnapshot servidor de backup.

  1. Crie login sem senha SSH usando SSH Keygen

Etapa 3: Configurando o RSNAPSHOT

Agora você precisará editar e adicionar alguns parâmetros a rsnapshot arquivo de configuração. Abrir rsnapshot.conf arquivo com vi ou Nano editor.

# vi /etc /rsnapshot.conf

Em seguida, crie um diretório de backup, onde você deseja armazenar todos os seus backups. No meu caso, minha localização do diretório de backup é “/dados/backup/”. Procure e edite o seguinte parâmetro para definir o local de backup.

snapshot_root/data/backup/

Também descomment o “cmd_ssh“Linha para permitir fazer backups remotos Ssh. Para descomentar, a linha remove o “#”Na frente da seguinte linha para que rsnapshot pode transferir seus dados com segurança para um servidor de backup.

cmd_ssh/usr/bin/ssh

Em seguida, você precisa decidir quantos backups antigos você gostaria de manter, porque o RSNAPSHOT não tinha ideia de quantas vezes você deseja tirar fotos instantâneas. Você precisa especificar quantos dados salvarem, adicionar intervalos para manter e quantos de cada.

Bem, as configurações padrão são boas o suficiente, mas ainda assim eu gostaria que você habilitasse “por mês"Intervalo para que você também possa ter backups de longo prazo no lugar. Por favor, edite esta seção para parecer parecida com as configurações abaixo.

##############################################intervalos de backup##deve ser exclusivo e na ordem ascendente # # i.e. a cada hora, diariamente, semanalmente, etc. ###############################################intervalo horário 6 intervalo diariamente 7 intervalo semanalmente semanal 4 intervalos mensais 3

Mais uma coisa que você precisa editar é “ssh_args" variável. Se você mudou o padrão Porta ssh (22) Para outra coisa, você precisa especificar o número da porta do seu servidor de backup remoto.

SSH_ARGS -P 7851

Por fim, adicione seus diretórios de backup local e remoto que você deseja fazer backup.

Backup de diretórios locais

Se você decidiu fazer backup de seus diretórios localmente para a mesma máquina, a entrada de backup ficaria assim. Por exemplo, estou recebendo backup do meu /Tecmint e /etc diretórios.

backup/ Tecmint/ localhost/ backup/ etc/ localhost/
Backup Remote Directories

Se você deseja fazer backup de um diretório de servidor remoto, precisará dizer ao RSNAPSHOT onde está o servidor e quais diretórios você deseja fazer backup. Aqui estou recebendo um backup do meu servidor remoto “/lar”Diretório em“/dados/backup”Diretório no servidor RSNAPShot.

backup [email protegido]:/home//data/backup/

Leia também:

  1. Como fazer backup/sincronizar diretórios usando a ferramenta RSYNC (Remote Sync)
  2. Como transferir arquivos/pastas usando o comando scp
Exclua arquivos e diretórios

Aqui, vou excluir tudo e, em seguida, definir apenas especificamente o que eu quero fazer backup. Para fazer isso, você precisa criar um arquivo de exclusão.

# VI/Data/Backup/Tecmint.excluir

Primeiro obtenha a lista de diretórios que você deseja fazer backup e adicionar ( - * ) para excluir tudo o mais. Isso só vai fazer backup do que você listou no arquivo. Meu arquivo exclui parece semelhante a abaixo.

+ /boot + /data + /tecmint + /etc + /home + /opt + /root + /usr - /usr /* - /var /cache + /var - /*

O uso da opção de arquivo exclui pode ser muito complicado devido ao uso de rsync recursão. Então, meu exemplo acima pode não ser o que você está olhando. Em seguida, adicione o arquivo de exclusão a rsnapshot.conf arquivo.

exclude_file/data/backup/tecmint.excluir

Finalmente, você quase terminou com a configuração inicial. Salve o "/etc/rsnapshot.conf”Arquivo de configuração antes de avançar mais. Existem muitas opções a serem explicadas, mas aqui está o meu arquivo de configuração de amostra.

config_version 1.2 snapshot_root /data/backup/ cmd_cp /bin/cp cmd_rm /bin/rm cmd_rsync /usr/bin/rsync cmd_ssh /usr/bin/ssh cmd_logger /usr/bin/logger cmd_du /usr/bin/du interval hourly 6 interval daily 7 intervalo semanal 4 intervalo mensal 3 ssh_args -p 25000 verbose 2 loglevel 4 logfile/var/log/rsnapshot/exclude_file/data/backup/tecmint.Exclua rsync_long_args--Delete-Numérico-Ids-Delete Excludido em arquivo/var/run/rsnapshot.Backup PID/ Tecmint/ localhost/ backup/ etc/ localhost/ backup [email protegido]:/ home// data/ backup// backup/

Todas as opções e explicações de argumento acima são as seguintes:

  1. config_version 1.2 = Versão do arquivo de configuração
  2. snapshot_root = Destino de backup para armazenar instantâneos
  3. cmd_cp = Caminho para copiar comando
  4. cmd_rm = Caminho para remover o comando
  5. cmd_rsync = Caminho para rsync
  6. cmd_ssh = Caminho para SSH
  7. cmd_logger = Interface de comando de caminho para shell para syslog
  8. CMD_DU = Caminho para o comando de uso do disco
  9. intervalo a cada hora = Quantos backups horários para manter.
  10. intervalo diariamente = Quantos backups diários para manter.
  11. intervalo semanalmente = Quantos backups semanais para manter.
  12. intervalo mensalmente = Quantos backups mensais para manter.
  13. ssh_args = Argumentos SSH opcionais, como uma porta diferente (-P)
  14. detalhado = Auto-explicativo
  15. Loglevel = Auto-explicativo
  16. arquivo de log = Caminho para o arquivo de log
  17. exclude_file = Caminho para o arquivo exclude (será explicado com mais detalhes)
  18. rsync_long_args = Longos argumentos para passar para o rsync
  19. Lockfile = Auto-explicativo
  20. cópia de segurança = Caminho completo para o que ser backup seguido pelo caminho relativo da colocação.

Etapa 4: Verifique a configuração do RSNAPSHOT

Depois de fazer a sua configuração, é hora de verificar se tudo funciona conforme o esperado. Execute o seguinte comando para verificar se sua configuração tem a sintaxe correta.

# rsnapshot ConfigTest Sintaxe OK

Se tudo configurado corretamente, você receberá um “Sintaxe OK" mensagem. Se você receber alguma mensagem de erro, isso significa que precisa corrigir esses erros antes de executar rsnapshot.

Em seguida, faça um teste executado em um dos instantâneos para garantir que estamos gerando resultados corretos. Nós pegamos o “a cada hora”Parâmetro para fazer uma execução de teste usando -t (teste) argumento. Este comando abaixo exibirá uma lista detalhada das coisas que fará, sem realmente fazê -las.

# rsnapshot -t a cada hora
Saída de amostra
eco 2028>/var/run/rsnapshot.pid mkdir -m 0700 -p/data/backup/mkdir -m 0755 -p/data/backup/horário.0//usr/bin/rsync -a--DELETE-Numérico-Ids-Relativo-Delete-Excluded/Home \/Backup/Hourly.0/localhost/mkdir -m 0755 -p/backup/hora.0//usr/bin/rsync -a--DELETE-Numérico-Ids-Relativo-Delete-Excluded/etc \/backup/hourly.0/localhost/mkdir -m 0755 -p/data/backup/hora.0//usr/bin/rsync -a--DELETE-Numérico-Ids-Relativo-Delete-Excluded \/usr/local/data/backup/hourly.0/localhost/touch/data/backup/horário.0/

Observação: O comando acima diz rsnapshot Para criar um “a cada hora" cópia de segurança. Na verdade, ele imprime os comandos que ele executará quando o executarmos realmente.

Etapa 5: executando o RSNAPSHOT manualmente

Depois de verificar seus resultados, você pode remover o “-t”Opção para executar o comando realmente.

# rsnapshot a cada hora

O comando acima executará o script de backup com toda a configuração que adicionamos no rsnapshot.conf arquivar e cria um “cópia de segurança”Diretório e depois cria a estrutura do diretório sob ele que organiza nossos arquivos. Depois de executar o comando acima, você pode verificar os resultados indo para o diretório de backup e listando a estrutura do diretório usando o comando ls -l como mostrado.

# CD /Data /Backup # LS -L Total 4 DRWXR-XR-X 3 RAIO RAOT 4096 28 de outubro 09:11.0

Etapa 6: automatizando o processo

Para automatizar o processo, Você precisa agendar rsnapshot ser executado em determinados intervalos de Cron. Por padrão, rsnapshot vem com Cron arquivo em “/etc/cron.d/rsnapshot“, Se não existe, crie um e adicione as seguintes linhas a ele.

Por padrão, as regras são comentadas, então você precisa remover o “#”Em frente à seção de agendamento para ativar esses valores.

# Este é um arquivo cron de amostra para RSNAPSHOT. # Os valores utilizados correspondem aos exemplos em /etc /rsnapshot.conf. # Lá você também pode definir os pontos de backup e muitas outras coisas. # # Para ativar este arquivo cron que você precisa descomentar as linhas abaixo. # Sinta -se à vontade para adaptá -lo às suas necessidades. 0 */4 * * * root/usr/bin/rsnapshot hourly 30 3 * * * raiz/usr/bin/rsnapshot diariamente 0 3 * * 1 raiz/usr/bin/rsnapshot semanalmente 30 2 1 * * raiz/usr/usr/ bin/rsnapshot mensal

Deixe -me explicar exatamente, o que as regras acima do Cron faz:

  1. Corre a cada 4 horas e cria um a cada hora diretório abaixo /cópia de segurança diretório.
  2. Corre diariamente em 3:30 e crie a diário diretório abaixo /cópia de segurança diretório.
  3. Corre semanalmente em todo Segunda-feira no 3:00 da manhã e crie a semanalmente diretório abaixo /cópia de segurança diretório.
  4. Corre a cada por mês no 2:30 e crie a por mês diretório abaixo /cópia de segurança diretório.

Para entender melhor sobre como Regras de Cron obras, eu sugiro que você leia nosso artigo que descreva.

  1. 11 exemplos de agendamento cron

Etapa 7: Relatórios RSNAPSHOT

O rsnapshot fornece um pequeno relatório bacana Script Perl que envia a você um Alerta de email com todos os detalhes sobre o que ocorreu durante o backup de dados. Para configurar este script, você precisa copiar o script em algum lugar em “/usr/local/bin”E torná -lo executável.

# cp/usr/share/doc/rsnapshot-1.3.1/UTILS/RSNAPREPORT.pl/usr/local/bin # chmod +x/usr/local/bin/rsnapreport.pl

Em seguida, adicione “-Estatísticas”Parâmetro em seu“rsnapshot.conf”Arquivo para a seção de argumentos longos do RSYNC.

vi /etc /rsnapshot.conf
rsync_long_args--stats--Delete-Numérico-Ids-Delete-Excluído

Agora edite o Regras de Crontab que foram adicionados anteriormente e chamam o RSNAPREPORT.pl script para passar os relatórios para o endereço de e -mail especificado.

# Este é um arquivo cron de amostra para RSNAPSHOT. # Os valores utilizados correspondem aos exemplos em /etc /rsnapshot.conf. # Lá você também pode definir os pontos de backup e muitas outras coisas. # # Para ativar este arquivo cron que você precisa descomentar as linhas abaixo. # Sinta -se à vontade para adaptá -lo às suas necessidades. 0 */4 * * * root/usr/bin/rsnapshot Hourly 2> & 1 | \/usr/local/bin/rsnapreport.PL | Mail -S "Backup Horal" [Email Protected] 30 3 * * * raiz/usr/bin/rsnapshot diariamente 2> & 1 | \/usr/local/bin/rsnapreport.PL | Mail -s "Backup diário" [email protegido] 0 3 * * 1 raiz/usr/bin/rsnapshot semanal 2> & 1 | \/usr/local/bin/rsnapreport.PL | Mail -s "Backup semanal" [Email Protected] 30 2 1 * * raiz/usr/bin/rsnapshot mensal 2> & 1 | \/usr/local/bin/rsnapreport.PL | Mail -S "Montly Backup" [Email Protected]

Depois de adicionar as entradas acima corretamente, você receberá um relatório no seu endereço de e-mail semelhante a abaixo.

Origem Total Arquivos Total Arquivos Trans Total MB MB Lista trans Gen Time Arquivo XFER Tempo --------------------------------------- -------------------------------------------------------- --------------------- localhost/ 185734 11853 2889.45 6179.18 40.661 Segundo 0.000 segundos

Links de referência

  1. RSNAPSHOT Página inicial

É isso por enquanto, se ocorrerem problemas durante a instalação, deixe -me um comentário. Até então fique atento a Tecmint Para artigos mais interessantes no mundo de código aberto.