Descrição
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.
[ Download:
bkfirebird.sh ]
[
Enviar nova versão ]
[ 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
Linkswitch
Acompanhamento de log squid com hora real
Gerador de PPP para USB (Palm OS e Pocket PC)
Script para construção de VPN-SSL
Atualização para KDE 3.5.1
Comentários
| Nenhum comentário foi encontrado. |