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