(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") "Планируем удалить в текущем каталоге старые файлы: {}." \; -delete -execdir echo -e $(date +"%d.%m.%Y %H:%M:%S") "Файл удален: {}.\n" \; | tee -a '||v_BackPath||v_TagName||'/daily/log.txt', 0);
end;
$bcp$
;