Como Fazer backup de um sistema Debian usando Backupninja
última atualização em 19 de setembro de 2020 por Gabriel Cánepa
prudência ou experiência por desastre pode ensinar a todos os administradores de sistemas a importância de fazer backups frequentes do sistema. Você pode fazer isso escrevendo bons scripts de shell antigos ou usando uma (ou mais) das muitas ferramentas de backup disponíveis para o trabalho (por exemplo, Clonezilla, Duplicity). Assim, quanto mais ferramentas você se familiarizar, mais decisões informadas você tomará ao implementar uma solução de backup.
neste artigo, apresentaremos Backupninja
, uma ferramenta de backup do sistema leve e fácil de configurar. Com a ajuda de programas como rdiff-backup
, duplicity
, mysqlhotcopy
e mysqldump
, o Backupninja oferece recursos de backup comuns, como backups remotos, seguros e incrementais do sistema de arquivos, backup criptografado e backup do banco de dados MySQL/MariaDB. Você pode ativar seletivamente relatórios de E-mail de status e também pode fazer backup de Informações Gerais de hardware e sistema. Uma força chave do Backupninja é um assistente integrado baseado em console (chamado ninjahelper
) que permite criar facilmente arquivos de configuração para vários cenários de backup.
a desvantagem, por assim dizer, é que o Backupninja requer que outros programas auxiliares sejam instalados para aproveitar ao máximo todos os seus recursos. Embora o pacote RPM do Backupninja esteja disponível para distribuições baseadas no Red Hat, as dependências do Backupninja são otimizadas para o Debian e seus derivados. Portanto, não é recomendado tentar Backupninja para sistemas baseados Red Hat.
neste tutorial, abordaremos a instalação do Backupninja para distribuições baseadas no Debian.
Instalar o Backupninja
Execute o seguinte comando como root:
# aptitude install backupninja
Durante a instalação, vários arquivos e diretórios serão criados:
-
/usr/sbin/backupninja
é o principal bash shell script. -
/etc/cron.d/backupninja
, por padrão, instruicron
a executar o script principal uma vez por hora. -
/etc/logrotate.d/backupninja
gira os logs criados pelo programa. -
/etc/backup.d/
é o diretório onde residem os arquivos de configuração para ações de backup. -
/etc/backupninja.conf
é o arquivo de configuração principal que inclui opções gerais. É bem comentado e explica cada opção em detalhes. -
/usr/share/backupninja
é o diretório onde os scripts usados pelo Backupninja estão localizados (também conhecidos como manipuladores). Estes são os scripts que são responsáveis por fazer o trabalho real. Neste diretório, Você também encontrará arquivos.helper
, que são usados para configurar e configurar menusninjahelper
. -
/usr/share/doc/backupninja/examples
contém modelos para arquivos de configuração de ação (o tipo de arquivos criados porninjahelper
).
executando ninjahelper pela primeira vez
quando tentamos iniciar ninjahelper
, podemos ver que uma dependência interna pode ser necessária. Se solicitado, digite yes
e pressione a tecla ENTER
para instalar dialog
(uma ferramenta que exibe caixas de diálogo fáceis de usar de scripts de shell).
quando você pressiona Enter depois de digitar Sim, O Backupninja instalará a caixa de diálogo e apresentará a seguinte tela assim que terminar.
exemplo 1: Faça backup de informações de Hardware e sistema
após o lançamento ninjahelper
, criaremos uma nova ação de backup:
se os programas auxiliares necessários não estiverem instalados, seremos apresentados com as seguintes telas. Desconsidere esta etapa se esses pacotes já tiverem sido instalados em seu sistema.
a próxima etapa consiste em selecionar os itens que você deseja fazer parte desse backup. Os quatro primeiros são selecionados por padrão, mas você pode desmarcá-los pressionando a barra de espaço.
depois de terminar, pressione OK para continuar. Você poderá escolher se deseja usar o arquivo de configuração padrão para esta ação de backup (/etc/backup.d/10.sys
) ou se deseja criar um novo. Neste último caso, um novo arquivo com o mesmo conteúdo que o padrão será criado no mesmo diretório, mas nomeado 11.sys
, e assim por diante para futuras ações de backup do sistema. Observe que você pode editar o arquivo de configuração assim que ele for criado com seu editor de texto preferido.
Exemplo 2: Incremental rsync Pull Backup de um diretório remoto
como você provavelmente sabe, rsync
é amplamente utilizado para sincronizar arquivos e pastas em uma rede. No exemplo a seguir, discutiremos uma abordagem para fazer backups incrementais de pull de um diretório remoto com hardlinking para salvar dados históricos e armazená-los em nosso servidor de arquivos local. Essa abordagem nos ajudará a economizar espaço e aumentar a segurança no lado do servidor.Etapa 1: Escreva um script personalizado no diretório /etc/backup.d
com o seguinte conteúdo e chmod
para 600
. Observe que este diretório pode conter, além de arquivos de configuração simples, scripts que você deseja executar quando o Backupninja é executado, com a vantagem de usar variáveis presentes no arquivo de configuração principal.
# REMOTE USERuser=root# REMOTE HOSThost=dev1# REMOTE DIRECTORYremotedir=/home/gacanepa/# LOCAL DIRECTORYlocaldir=/home/gacanepa/backup.0# LOCAL DIRECTORY WHERE PREVIOUS BACKUP WAS STOREDlocaldirold=/home/gacanepa/backup.1mv $localdir $localdirold# RSYNCrsync -av --delete --recursive --link-dest=$localdirold $host:$remotedir $localdir
Na configuração acima, o --link-dest
opção rsync
é usar a hardlink arquivos inalterados (em todos os atributos) de $localdir-old
para o diretório de destino ($localdir
).Etapa 2: antes que o Backupninja seja executado pela primeira vez, o diretório pai (/home/gacanepa
neste caso) está vazio. A primeira vez que executamos:
# backupninja -n
o diretório backup.0
é criado e, posteriormente, no processo, seu nome é alterado para backup.1
.
a segunda vez que executamos Backupninja, backup.0
é recriado e backup.1
é mantido.
Etapa 3: Verifique se o conteúdo de backup.1
são links rígidos para os arquivos em backup.0
comparando os respectivos números de inode e tamanhos de diretório.
conclusão
Backupninja não é apenas uma ferramenta de backup clássica, mas também um utilitário fácil de configurar. Você pode escrever seus próprios manipuladores para executar o Backupninja de acordo com os arquivos de configuração individuais localizados em /etc/backup.d
, e você pode até escrever ajudantes para ninjahelper
para incluí-los em sua interface principal.Por exemplo, se você criar um manipulador chamado xmodulo
em /usr/share/backupninja
, ele será executado por padrão todos os arquivos com a extensão .xmodulo
em /etc/backup.d
. Se você decidir adicionar seu manipulador xmodulo
a ninjahelper
, poderá escrever o ajudante correspondente como xmodulo.helper
. Além disso, se você quiser Backupninja para executar um script arbitrário, basta adicioná-lo a /etc/backup.d
e você está pronto para ir. Consulte este tutorial do Backupninja para obter detalhes sobre como criar um plano de backup personalizado.