Firebird - skrypt kopii zapasowej

Przykład skryptu który wykorzystuje program gbak.exe standardowo dołączony do instalacji serwera Firebird.

Skrypt ustawia sobie zmienne środowiskowe, pobiera listę baz z pliku tekstowego i pętli wykonuje kopię dla każdej bazy.

kopia.bat

echo Kopiowanie baz Firebird
@echo off
set GBAK="C:\Program Files\Firebird\Firebird_1_5\bin\gbak.exe"
set BDIR=C:\FB\%DATE%
set BLIST=C:\auto_skrypty\lista_baz.txt
set USER=sysdba
set PASS=masterkey

 

mkdir %BDIR%
@echo Kopia z dnia: %DATE% >> %BDIR%\kopia.log

 

FOR /F %%i IN (%BLIST%) DO (
@echo on
echo Kopia: %%i >> %BDIR%\kopia.log
@echo off
%GBAK% -b -user %USER% -pas %PASS% %%i %BDIR%\%%~nxi.FBK -y %BDIR%\%%~nxi.LOG 2>>%BDIR%\kopia.log
)

 

lista_baz.txt

localhost:C:\sciezka_do_bazy\baza.fdb
localhost:C:\sciezka\do\bazy\baza2.fdb
192.168.0.1:C:\sciezka_do_bazy\baza.fdb
192.168.0.2:/sciezka/do/bazy/baza.fdb

set GBAK="C:\Program Files\Firebird\Firebird_1_5\bin\gbak.exe"
ustawia zmienną GBAK - program gbak standardowo umieszczany jest w katalogu bin w miejscu instalacji serwera

set BDIR=B:\FB\%DATE%
ustawia zmienną BDIR - katalog w którym zapisane będą kopie baz (zmienna %DATE% zwraca aktualną datę w formacie RRRRMMDD):
np: C:\FB\20091027

set BLIST=C:\auto_skrypty\lista_baz.txt
ustawia zmienną BLIST - plik tekstowy z listą baz, każda baza w jednym miejscu



data utworzenia: 27-10-2009
data ostatniej modyfikacji: 08-06-2010