Skip to content

icukeng/bkprotate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bkprotate

Ведение, прореживание и удаление устаревших файлов архивов.

Для каждой архивириемой сущности указывается

  • шаблон файла для идентификации и опредения из имени даты архивации,
  • интервалы (их длительность в днях) хранения архивов (для каждого интервала будет сохранен 1 архив).

При каждом запуске (например, по крону) будет проверяться список файлов и применятья интервалы удаления.

По окончанию отчет высылается на почту. В нем указывается количество файлов на удержании и удаленных, а также нераспознанные файлы.

Интервалы

Интервалы [1, 1, 1, 2, 2, 3, 3] означают

  • первые три дня будет сихраняться по бекапу в день
  • в 4-5 дни - 1 бекап и 6-7 - 1 бекап
  • 8-10 - 1 бекп и 11-13 - 1 бекап
  • старшие бекапы будут удалены

Конфигурация

Файл конфигурации bkprotate.yaml (располагается рядом с бинарником)

mail:
  host: "host"
  port: 25
  verify: false # проверка ssl ключа сервера на валидность
  from: "bkp@host"
  to: [ "admin@host" ]
dir: dir
rules:
- p: dir/db-{2006-01-02}.tst # маска для поиска файлов
  i: [1, 1, 1, 1, 2, 2, 2, 3] # интервалы
- p: dir/files-{2006-01-02}.tst
  i: [2, 2, 2, 5]

TODO

  • минимальный интервал сейчас 1 день, сделать его произвольным
  • если новых файлов не поступает узнать об этом можно только по остутсвию удаляемых. надо сделать интервал ожидания новоых файлоы и сигнализировать в отчете о его просрочке