понедельник, 13 апреля 2015 г.

FireBird backup

Есть (реальность, данная в самых пренеприятных ощущениях) медицинская программа (Арена, она же Аметист, она же Колибри и еще пара -- тройка ипостасей). Живет она на Win2008R2 (на виртуалке) на движке FireBird. Задача на самом деле простая - нужно ее сохранять родными средствами раз в сутки и иметь достаточное количество копий на случай развала базы. Запускаем по рабочим дням ежедневный скриптик. 

MD %systemroot%\temp\arenabackup
set now=%TIME:~0,-3%
set now=%now::=%
set now=%now: =0%
set now=%DATE:~-4%%DATE:~3,2%%DATE:~0,2%_%now%
"C:\Program Files\Firebird\Firebird_2_5\bin\gbak" -b "C:\arena\DB\arena.Gdb" "%systemroot%\temp\arenabackup\%now%.Gbk" -user sysdba -password masterkey -v -y "%systemroot%\temp\arenabackup\%now%.txt"
"C:\Program Files (x86)\7-Zip\7z.exe" a W:\day\%now%bak.zip %systemroot%\temp\arenabackup*

RD %systemroot%\temp\arenabackup /S/Q

И раз в месяц еще и месячный, для верности

MD %systemroot%\temp\arenabackup
set now=%TIME:~0,-3%
set now=%now::=%
set now=%now: =0%
set now=%DATE:~-4%%DATE:~3,2%%DATE:~0,2%_%now%
"C:\Program Files\Firebird\Firebird_2_5\bin\gbak" -b "C:\arena\DB\arena.Gdb" "%systemroot%\temp\arenabackup\%now%.Gbk" -user sysdba -password masterkey -v -y "%systemroot%\temp\arenabackup\%now%.txt"
"C:\Program Files (x86)\7-Zip\7z.exe" a W:\mounth\%now%bak.zip %systemroot%\temp\arenabackup*
RD %systemroot%\temp\arenabackup /S/Q

Автор скриптов Михаил Дедов, спасибо ему за терпение, имя и пароль соответствуют дефолтовым настройкам FB,  их нужно подставить реальные. Диск W: замаплен на сетевой ресурс, на котором все копии и живут. В планировщике это выглядит вот так:


В соответствующем /etc/cron.d/local есть такие строчки:

22 4 * * 1-5  root find /home/storage/onecopy/arenadb/day -ctime +10 -delete
22 5 15 * *  root find /home/storage/onecopy/arenadb/month -ctime +180 -delete


Комментариев нет:

Отправить комментарий