(PostGre развернут в ОС Linux)
do $bcp$
declare v_Result integer; v_ErrorMsg text; v_backup_info text; v_File text; v_TagName text; v_BackPath text; v_days text;
begin
-- Параметры скрипта -------------------------------------------
v_TagName='budjet_22'; --Имя резервируемой базы данных PostgreSQL
v_BackPath='/var/lib/pgsqlks-13.1_5434/backups/'; --Имя каталога, куда будет резервироваться база данных
v_days=14; --Количество дней, в течение которых будет храниться резервная копия базы данных
-------------------------------------------------------------------------
select p.v\_Result, p.v\_ErrorMsg, p.v\_backup\_info, p.v\_File
into v\_Result, v\_ErrorMsg, v\_backup\_info, v\_File
from xp\_pg\_dump ( v\_DbName := v\_TagName ,v\_Path := v\_BackPath||v\_TagName||'/daily' ,v\_File := '@dbname\_id\_@timestamp\_id.bak' ) p;
perform xp\_cmdshell\_1('find '||v\_BackPath||v\_TagName||'/daily/ -maxdepth 1 -mount -mtime +'||v\_days||' -name "'||v\_TagName||'\_\*"
-execdir echo -e $(date +"%d.%m.%Y %H:%M:%S") <span style="background-color:green">"Планируем удалить в текущем каталоге старые файлы:
{}."</span> \\; -delete -execdir echo -e $(date +"%d.%m.%Y %H:%M:%S") <span style="background-color:green">"Файл удален: {}.\\n"</span> \\; | tee -a '||v\_BackPath||v\_TagName||'/daily/log.txt', 0);
end;
$bcp$
;