Backup MySQL · 4 min read · Dec 10, 2025
Configurar Rsnapshot, Arquivamento de Snapshots e Backup de Bancos de Dados MySQL no Debian
Configurar Rsnapshot, Arquivamento de Snapshots e Backup de Bancos de Dados MySQL no Debian
Por Nedim Hadzimahmutovic < [email protected] >
Este guia mostrará como instalar e configurar o Rsnapshot, habilitar o arquivamento de snapshots e como fazer backup de bancos de dados MySQL no Debian.
Instale o programa usando a utilidade apt-get:
apt-get install rsnapshotEdite o arquivo de configuração:
nano /etc/rsnapshot.confDefina snapshot_root para o caminho onde você deseja manter os backups:
snapshot_root /var/cache/rsnapshot/Configure a lista de diretórios/arquivos a serem copiados.
backup /etc/ localhost/Intervalos de Backup
Esta seção do arquivo de configuração é usada apenas para definir rótulos para intervalos e quantos snapshots de cada nível manter. A frequência com que os snapshots são feitos é configurada e executada via cron. A palavra-chave intervalo é seguida por um rótulo alfanumérico, seguido por um número, significando quantos intervalos (snapshots) manter. Os rótulos de intervalo devem ser únicos e em ordem crescente, o menor intervalo deve ser listado primeiro.
No exemplo a seguir, após 6 snapshots “hora a hora”, o mais antigo “hora a hora” é excluído. A entrada superior (neste caso “hora a hora”) é copiada da fonte, enquanto as entradas restantes simplesmente vinculam ao snapshot mais recente de um nível acima.
Em outras palavras, para manter seis backups por dia (intervalo de quatro horas), sete backups diários (uma semana) e quatro backups semanais (um mês), especifique:
interval hourly 6
interval daily 7
interval weekly 4Os rótulos de intervalo “hourly”, “daily”, “weekly” podem ser alterados para atender às suas necessidades, por exemplo, “daysago”, “weeksago” e “monthsago”.
Cada vez que o rsnapshot hourly é executado, manualmente ou via cron, ele criará um novo snapshot, rotacionará os antigos e reterá os 6 mais recentes (hourly.0 - hourly.5).
Pontos de Backup
Exemplo de um ponto de backup dentro do arquivo de configuração:
backup /etc/ localhost/ Os pontos de backup começam com a palavra backup, seguindo /etc/ está o caminho completo do diretório que será copiado e localhost é um diretório dentro de snapshot_root. Você pode alterar localhost para qualquer coisa associada ao servidor, como o nome de domínio totalmente qualificado do servidor.
Além dos caminhos completos no sistema de arquivos local, você também pode fazer backup de sistemas remotos usando rsync sobre ssh. Se você tiver ssh instalado e habilitado (via o parâmetro cmd_ssh), você pode especificar um caminho como:
backup [email protected]:/etc/ example.com/Tenha em mente que você deve ter logins baseados em chave habilitados para o usuário root em example.com, sem senhas para que isso funcione corretamente./
Scripts de Backup
Você pode encontrar muitos exemplos no diretório utils que no Debian está localizado em /usr/share/doc/rsnapshot/examples/utils/.
Os scripts de backup são executados com cada intervalo mais baixo.
Executando Backups Via Cron
O arquivo cron está localizado em
/etc/cron.d/rsnapshotO conteúdo padrão:
# 0 */4 * * * root /usr/bin/rsnapshot hourly
# 30 3 * * * root /usr/bin/rsnapshot daily
# 0 3 * * 1 root /usr/bin/rsnapshot weekly
# 30 2 1 * * root /usr/bin/rsnapshot monthly
Você deve descomentar as linhas para ativar os backups.
A primeira diz ao cron para executar cron-apt a cada 4 horas, o que corresponde às configurações de intervalo horário no rsnapshot.conf.
Testar configuração:
Toda vez que você fizer uma alteração no arquivo de configuração, faça um configtest:
rsnapshot configtestPOR FAVOR, ESTEJA CIENTE DAS SEGUINTES REGRAS:
- O arquivo de configuração requer tabs entre os elementos, espaços representam argumentos para scripts
- Diretórios requerem uma barra no final, exemplo:
certo: /home/
errado: /home
Arquivando snapshots
cp /usr/share/doc/rsnapshot/examples/utils/rsnaptar /usr/local/bin/Certifique-se de que seus scripts de backup sejam de propriedade do root e não graváveis por mais ninguém.
chown root.root /usr/local/bin/rsnaptar
chmod o-w /usr/local/bin/rsnaptarEdite o script e defina os caminhos dos diretórios:
nano /usr/local/bin/rsnaptarDefina TAR_DIR para o caminho onde o snapshot será arquivado, e SNAPSHOT_DIR para onde o snapshot diário está localizado:
TAR_DIR="/home/user/dvd_backup"
SNAPSHOT_DIR="/var/cache/rsnapshot/daily.0"Observe que o ciclo horário precisa ser concluído para que o snapshot diário seja criado.
Este script suporta a criptografia gpg de arquivos, para desativá-la, comente a seguinte linha em /usr/local/bin/rsnaptar:
GPG="/usr/bin/gpg"Agendando Execução Via Cron
nano /etc/cron.daily/rsnaptarAdicione:
#!/usr/bin/env bash
/usr/local/bin/rsnaptar [email protected]Notas:
- este guia não usa a opção GPG para criptografar arquivos, se isso for uma necessidade, posso atualizar o guia para incluir a criptografia de arquivos para melhor segurança,
- por padrão, o script é executado de forma independente, mas pode ser modificado para ser executado como um backup_script via rsnapshot em si,
Rsnapshot: Fazendo Backup de Bancos de Dados MySQL
Instale mysql-client se não estiver instalado, isso fornecerá a utilidade mysqldump:
# apt-get install mysql-client# cp /usr/share/doc/rsnapshot/examples/utils/backup_mysql.sh /usr/local/bin/Certifique-se de que seus scripts de backup sejam de propriedade do root e não graváveis por mais ninguém.
chown root.root /usr/local/bin/backup_mysql.sh
chmod o-w /usr/local/bin/backup_mysql.shEste script é projetado apenas para fazer backup de todos os bancos de dados em um único arquivo.
Edite o script:
nano /usr/local/bin/backup_mysql.shSubstitua
/usr/bin/mysqldump --all-databases > mysqldump_all_databases.sqlpor
/usr/bin/mysqldump --defaults-file=/etc/mysql/debian.cnf --all-databases > mysqldump_all_databases.sqlSe você precisar despejar um único banco de dados, use a linha abaixo:
/usr/bin/mysqldump --defaults-file=/etc/mysql/debian.cnf DATABASE > DATABASE.SQLAdicionar Script ao Rsnapshot
Edite a configuração do rsnapshot:
nano /etc/rsnapshot.confSob PONTOS DE BACKUP / SCRIPTS adicione o seguinte:
backup_script /usr/local/bin/backup_mysql.sh localhost/mysqldump/Teste a configuração:
rsnapshot configtestReceba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.