Rotina para backup diário, semanal e mensal (exemplo para Firebird)

Publicado por Marcos Giansante Bocca (última atualização em 17/12/2009)

[ Hits: 14.327 ]

Homepage: www.bocca.adm.br

Download bkfirebird.sh




Rotina para backup de banco de dados que mantém os arquivos dos últimos 7 dias, dos últimos 4 fins de semana e permanentemente do dia primeiro do mês utilizando o cron do Linux. Aqui adaptada para Firebird, utilizado pelo aplicativo Intsys.

  



Esconder código-fonte

#!/bin/sh
#begin of bkfirebird.sh
#Author: Marcos G. Bocca, 2009 http://marcos.bocca.adm.br
#Reproducao autorizada desde que mantida esta citacao de autoria
#Salve uma copia deste no diretorio de programas; crie os diretorios
# e acerte propriedades como por exemplo:
if false; then
  mkdir -p /opt/fbdata/backup/1diario
  mkdir    /opt/fbdata/backup/2mensal
  mkdir    /opt/fbdata/backup/2semanal
  mkdir    /opt/fbdata/backup/3mensal
  mkdir    /opt/fbdata/backup/9permanente
  rmdir /opt/fbdata/backup/2mensal
  ll /opt/fbdata/backup/
  chown -R firebird:firebird /opt/fbdata/backup/
  chmod -R 775 /opt/fbdata/backup/
  chown  firebird:firebird /usr/local/bin/bkfirebird.sh
  chmod  770 /usr/local/bin/bkfirebird.sh
  fi
#Sugestao de parametros (vide "man date" ou "date --help" para todos)
#%u   day of week (1..7); 1 is Monday
#%A   locale's full weekday name (e.g., Sunday)
#%U   week number of year, with Sunday as first day of week (00..53)

#Substitua os asteriscos pela senha do banco de dados e
#altere as 3 linhas abaixo conforme seu ambiente:
C="/opt/firebird/bin/gbak -B -USER SYSDBA -PAS ****** "
BKD="/opt/fbdata/backup/"
DBD="/opt/fbdata/"

if [ "$2" = "" ]; then
 echo use  $0 DataBaseFile Subdir_of_backup_dir [date_format_to_rename]
 echo ex.: $0 DOORS.GDB 1diario u
 echo "se terceiro parametro for igual a U (semana do ano), e' apagado arquivo U - 4)"
 echo "Author: Marcos G. Bocca, 2009 http://marcos.bocca.adm.br"
 echo "Reproducao autorizada desde que mantida esta citacao de autoria"
else
 # $1=db (ex: DOORS.GDB)  $2=subdir (ex: 1diario)
 echo backup at  $BKD$2/"$1"_$(date +%Y%m%d).gbak
 #touch $BKD$2/"$1"_$(date +%Y%m%d).gbak
 $C $DBD$1  $BKD$2/"$1"_$(date +%Y%m%d).gbak ;#log=$BKD$2/"$1"man.log full=y statistics="none"
 echo gzipping $BKD$2/"$1"_$(date +%Y%m%d).gbak
 gzip $BKD$2/"$1"_$(date +%Y%m%d).gbak
 if [ "$3" != "" ]; then
    echo moving $2/"$1"_$(date +%Y%m%d).gbak.gz to $BKD$2/"$1"_$(date +%"$3").gbak.gz
    mv        $BKD$2/"$1"_$(date +%Y%m%d).gbak.gz    $BKD$2/"$1"_$(date +%"$3").gbak.gz
    if [ "$3" = "U" ]; then
       rm $BKD$2/"$1"_`echo $(date +%"$3") - 4 | bc`.gbak.gz
       fi
    fi
 ls -lrt $BKD$2/
 fi

#Resultado esperado para comando ...
#bkfirebird.sh DOORS.GDB 1diario
#backup at /opt/bfdata/backup/1diario/DOORS.GDB_20091215.gbak
#gzipping /opt/bfdata/backup/1diario/DOORS.GDB_20091215.gbak
#total 5168
#-rw-r--r-- 1 root root 5279200 Dec 15 19:26 DOORS.GDB_20091215.gbak.gz

#Sugestao para cron:
#De segunda a sexta: bkfirebird.sh DOORS.GDB 1diario u
#Sabado:             bkfirebird.sh DOORS.GDB 2semanal U
#Todo dia 1 do mes:  bkfirebird.sh DOORS.GDB 3mensal
####end of bkfirebird.sh

Scripts recomendados

Backup de Base de Dados

Manutenção básica em partições Linux

Firewall simples, com opções de redirecionamento

Jftp Script - Script para automação de um processo FTP

Gerando múltiplas isos


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts