Arquivo de junho \20\+00:00 2013

SQLite3 simples backup

Pessoal, ultimamente estou meio desligado do blog, mas eu ainda estou vivo! De qualquer forma resolvi deixar uma dica de como fazer uma backup em banco de dados SQLite3 já que essa semana tive que criar uma rotina no meu servidor para fazer um backup do sistema de um cliente que era feito em Rails.

O backup em SQLite3 não tem segredo, para falar a verdade é fácil, vamos criar um script e usar duas ferramentas o sqlite3 e o cron, eu não acho necessário ter um backup para cada dia do mês, o ideal seria um para cada dia da semana julgando o tamanho da aplicação e se o banco de dados corromper dificilmente vai demorar mais de sete dias para perceberem que não está funcionando o sistema (quando normalmente demora somente um segundo!).

No arquivo do Cron o crontab vamos criar sete agendamentos um para cada dia da semana que serão executados em um horário de baixa atividade do sistema para evitar um possível corrompimento no banco de dados, eu normalmente uso 01:01hs da madrugada já que a maioria das pessoas comuns está dormindo ou não está trabalhando. O script que vamos usar se chama backup.sh que recebe um parâmetro que será usado para determinar qual arquivo será gravado. Porque usar um script se o backup pode ser feito com uma linha de comando, a resposta é simples supondo que você tenha mais de um sistema que precise ser feito backup no mesmo servidor, com o script podemos configurar um backup para cada sistema e fazer todos os backup’s de uma vez, assim evitamos de sobrecarregar o sistema de tarefas.

Processo do Backup

backup.sh:

#!/bin/bash
#
# Script para gerar o backup nos bancos de dados
# Desenvolvido por Pablo Alexander
# pablo@cloudwall.com.br
# www.cloudwall.com.br

# Gera o backup da (Empresa do Cliente...)
sqlite3 /srv/app/sistema/db/production.sqlite3 '.dump' > /root/backup/sistema_0$1.sql

# Registra o ultimo backup
echo Ultimo backup :`date` >> /root/backup/backup.log

crontab:

# Gera o backup de domingo
  1  1  *  *  0 root /root/script/backup.sh 1
# Gera o backup de segunda
  1  1  *  *  1 root /root/script/backup.sh 2
# Gera o backup de terça
  1  1  *  *  2 root /root/script/backup.sh 3
# Gera o backup de quarta
  1  1  *  *  3 root /root/script/backup.sh 4
# Gera o backup de quinta
  1  1  *  *  4 root /root/script/backup.sh 5
# Gera o backup de sexta
  1  1  *  *  5 root /root/script/backup.sh 6
# Gera o backup de sábado
  1  1  *  *  6 root /root/script/backup.sh 7

, ,

Deixe um comentário