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.328 ]
Homepage: www.bocca.adm.br
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.
#!/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
Gerenciamento de espaço em disco
Manutencao de arquivos no Squid-Cache
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Wifi não funciona no Aspire ES 15 com o Debian (9)
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta