Хранение, а также своевременное удаление резервных копий - важная задача любого администратора. Грамотным удалением устаревших резервных копий часто пренебрегают и отдают эту задачу на исполнение батникам, скриптам и иногда регламентным заданиям СУБД. В таком случае нет никакого логирования работы задачи и возможно удаление всех резервных копий.
Исходя из описанных ограничений написана библиотека и исполняемый файл на языке OneScript для удаления устаревших резервных копий.
Основные возможности:
- Удаление резервных копий по истечении периода хранения,
- Обязательное хранение минимального количества резервных копий,
- Логирование действий,
- Режим "Без удаления резервных копий".
Основной алгоритм работы:
Создается файл настроек.
В файле настроек описываются настройки и задания для выполнения:
Настройка "БезУдаленияРезервныхКопий", если установлено значение true, тогда резервные копии не удаляются, только выводятся в лог резервные копии к удалению.
Перечисление заданий для выполнения:
Каталог - каталог хранения резервных копий, чтение вложенных каталогов не выполняется,
МаскаФайлов - маска для поиска файлов резервных копий, будут анализироваться только файлы, удовлетворяющие маске,
МинимальноеКоличествоРезервныхКопий - минимальное количество хранимых резервных копий, меньше этого количества не будет удалено резервных копий,
ПериодХраненияРезервныхКопий - период хранения резервных копий в днях: 0 - будут удалены все резервные копии, 1 - будут сохранены только копии от текущей даты. Дата резервной копии определяется по дате изменения файла.
При заполнении настроек заданий важно соблюдать формат [ИмяЗадания].[ИмяНастройки]. При чтении настроек заданий они будут сгруппированы по имени задания. Вложенность настроек не учитывается.
Запускается исполняемый файл.
Для использования из скачанного архива необходимо запускать файл deletebackupfiles_exe\main.os.
Использование:
main.os [PathToSettings] [-debug]
PathToSettings - путь к файлу с настройками заданий.
-debug - вывод в лог дополнительной отладочной информации.
Примеры использования:
main.os - чтение файла настроек по умолчанию settings.json из текущего каталога исполняемого файла.
main.os c:\deletebackupfiles\settings_ib1.json - чтение файла настроек из указанного файла.
Планы по развитию библиотеки:
Использование регулярных выражений при поиске резервных копий по маске.
Определение даты резервной копии по формату имени файла.
Более подробное описание библиотеки на GitHub.
Ссылка на исполняемый файл на GitHub.