Skip to content

Scripts de Backup do GIL e do Cadsus Simplificado no Linux

qui, 2013/04/11

Como eu disse no post Servidor GIL e Cadsus Simplificado em Linux, ao utilizar o banco de dados do GIL em um servidor Linux, o procedimento normal de backup fica impossibilitado. Este post traz scripts de exemplo para a realização de backup do GIL, para suprir a carência deixada, e também do Cadsus Simplificado.

Backup de bdgil.fdb

Este script envolve duas etapas de compressão, pois não é possível realizar backups incrementais ou diferenciais com Firebird 1.5, só podemos realizar backups completos. A primeira compressão utiliza uma ferramenta do próprio Firebird, o gbak, que também é utilizado pelo aplicativo GIL em suas ferramentas de backup. Nesta etapa é necessário o usuário e a senha de acesso ao banco de dados do GIL, que são, respectivamente, sysgil e phoenix, de acordo com este blog. Sintaxe do gbak para a realização de nosso backup:

/opt/firebird/bin/gbak -USER USUARIO -PAS SENHA -B -IG ARQUIVO-DE-BANCO-DE-DADOS ARQUIVO-DE-BACKUP

Onde:

-USER USUARIO
Nome de usuário do Firebird. Substitua USUARIO por sysgil.

-PAS SENHA
Senha do Firebird. Substitua SENHA por phoenix.

-B
Realiza o backup do arquivo de banco de dados fornecido para o arquivo de backup especificado.

-IG
Ignora erros de checksum.

ARQUIVO-DE-BANCO-DE-DADOS
Caminho de diretório e nome do arquivo de banco de dados. No nosso exemplo, substitua por /var/lib/firebird/gil/bdgil.fdb.

ARQUIVO-DE-BACKUP
Caminho de diretório e nome do arquivo de backup. No nosso exemplo, substitua por /tmp/gil$(date +%Y%m%d).fbk.

Utilizar o nome do arquivo de backup desta forma, gil$(date +%Y%m%d).fbk, irá fazer com que a cada dia o nome seja diferente, pois terá como base a data do sistema. Um backup de hoje terá nome gil20130410.fbk, por exemplo.

Utilizando estas informações com o gbak, temos a primeira linha do nosso script:

/opt/firebird/bin/gbak -USER sysgil -PAS phoenix -B -IG /var/lib/firebird/gil/bdgil.fdb /tmp/gil$(date +%Y%m%d).fbk

Backup que se preze, é feito em fita ou em outro computador remoto. Nossa próxima linha do script consiste em montar em /mnt um compartilhamento chamado backup, existente em um computador com IP 192.168.1.65, com sistema operacional Windows, usando o usuário germanodlf e a senha senha para acesso. Esta linha terá que ser modificada de acordo com a sua necessidade:

mount -t cifs -o username=germanodlf,password=senha //192.168.1.65/backup /mnt

Agora a segunda compressão, que é feita pelo tar. Iremos comprimir direto em nosso servidor de backup Windows usando o algoritmo de compressão bzip2 e a mesma idéia de nomenclatura de arquivo baseado na data do sistema:

tar -czf /mnt/gil$(date +%Y%m%d).fbk.tar.gz /tmp/gil$(date +%Y%m%d).fbk

Desmontamos o compartilhamento:

umount /mnt

E removemos os arquivos temporários:

rm /tmp/gil$(date +%Y%m%d).fbk

No fim das contas, teremos um script completo de backup do banco de dados do GIL, que iremos dar o nome de gil-backup:

#!/bin/bash
/opt/firebird/bin/gbak -USER sysgil -PAS phoenix -B -IG /var/lib/firebird/gil/bdgil.fdb /tmp/gil$(date +%Y%m%d).fbk
mount -t cifs -o username=germanodlf,password=senha //192.168.1.65/backup /mnt
tar -czf /mnt/gil$(date +%Y%m%d).fbk.tar.gz /tmp/gil$(date +%Y%m%d).fbk
umount /mnt
rm /tmp/gil$(date +%Y%m%d).fbk

Backup de DB_CNS.GDB

Podemos usar a mesma idéia do script gil-backup e criar um outro script para backup do banco de dados do Cadsus Simplificado, sendo que utilizaremos o usuário sysdba e a senha masterkey para a ferramenta gbak. Para versões do GIL a partir da 4.0.30, podemos criar o script abaixo, dando o nome de cadsus-backup:

#!/bin/bash
/opt/firebird/bin/gbak -USER sysdba -PAS masterkey -B -IG /var/lib/firebird/cadsus/DB_CNS.GDB /tmp/cadsus$(date +%Y%m%d).gbk
mount -t cifs -o username=germanodlf,password=senha //192.168.1.65/backup /mnt
tar -czf /mnt/cadsus$(date +%Y%m%d).gbk.tar.gz /tmp/cadsus$(date +%Y%m%d).gbk
umount /mnt
rm /tmp/cadsus$(date +%Y%m%d).gbk

Já para versões do GIL anteriores à 4.0.30 temos que modificar uma linha do script, a linha 2, conforme abaixo, e também daremos o nome de cadsus-backup:

#!/bin/bash
/opt/firebird/bin/gbak -USER sysdba -PAS masterkey -B -IG /var/lib/firebird/cadsus/banco/DB_CNS.GDB /tmp/cadsus$(date +%Y%m%d).gbk
mount -t cifs -o username=germanodlf,password=senha //192.168.1.65/backup /mnt
tar -czf /mnt/cadsus$(date +%Y%m%d).gbk.tar.gz /tmp/cadsus$(date +%Y%m%d).gbk
umount /mnt
rm /tmp/cadsus$(date +%Y%m%d).gbk

Scripts no Path

Para que os scripts possam ser executados como se fossem comandos, vamos colocá-los no path do usuário, mas por segurança vamos permitir apenas que o root os execute:

chown root:root gil-backup cadsus-backup
chmod 700 gil-backup cadsus-backup
mv gil-backup cadsus-backup /sbin

Agendamento dos Backups

Para agendar os backups utilizaremos o serviço Anacron, que nos permite executar os scripts periodicamente. No nosso exemplo vamos realizar backups diários, sendo o backup do GIL às 00:00 e do Cadsus às 00:30. Execute os seguintes comandos para realizar este agendamento:

yum -y install cronie-anacron
echo '00 00 * * * root /sbin/gil-backup' >> /etc/crontab
echo '30 00 * * * root /sbin/cadsus-backup' >> /etc/crontab

Restaurando um Backup

De nada adianta um backup se não soubermos como restaurá-lo, não é verdade? Veja o post abaixo para saber como restaurar os backups feitos com estes scripts:

Scripts de Restauração do GIL e do Cadsus Simplificado no Linux [Em desenvolvimento]

Anúncios

From → GIL, GNU\Linux

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: