Использоваие «формата даты» для организации структуры резервных копий в APBackup

Программа APBackup при сохранении резервной копии как в основную директорию так и в дополнительные директории позволяет задавать имя архива в зависимости от текущей даты. Для этого используется поле «Формат даты». Данное поле представляет собой маску формата даты/времени и вычисляется в момент сохранения архива.


Например если данное поле имеет вид "MMDDYYYY" то при выполнении бэкапа 16.06.2009 данное поле в имени файла примет вид "06162009"

Настройка сохранения архива

При сохранении архива APBackup сначала формирует основной архив затем если заданы дополнительные директории копирует архив в доп. директории (возможно 3 доп. директории + копия на FTP сервер). Причем для каждой дополнительной директории возможно задать отдельные правила формирования имени а так же глубину архива.

Глубина архива это параметр в соответствии с которым APBackup удаляет старые архива. Например если глубина архива равна 3 файлам это значит что после каждого выполнения задания APBackup будет оставлять только 3 последних резервных копии. Так же возможно задать глубину в днях и месяцах. Т.е. остаются архивы не старше например 3 дней вне зависимости от количества.

Поле «формат даты» можно как выбрать из списка, так и вводить в ручную. При этом возможны следующие макросы:

  • * c — Отображает дату в формате ShortDateFormat и время в формате LongTimeFormat
  • * d — День месяца без ведущего нуля (1-31).
  • * dd — День месяца с ведущим нулем (01-31).
  • * ddd — День недели в соответсвии с локальными настройками (Sun-Sat)
  • * dddd — День недели полностью (Sunday-Saturday)
  • * ddddd — Только дата (без времени) в формате ShortDateFormat
  • * dddddd — Только дата (без времени) в формате LongDateFormat
  • * m — Месяц без ведущего нуля (1-12). Если m следует сразу за h или hh то вместо месяца отображаются минуты.
  • * mm — Месяц с ведущим нулем (1-12). Если mm следует сразу за h или hh то вместо месяца отображаются минуты.
  • * mmm — Короткое название месяца в соответсвии с локальными настройками (Jan-Dec)
  • * mmmm — Полное название месяца в соответсвии с локальными настройками (January-December)
  • * yy — Год как две цифры (00-99).
  • * yyyy — Год как четыре цифры(0000-9999).
  • * h — Час без ведущего нуля (0-23).
  • * hh — Час с ведущим нулем (00-23).
  • * n — Минуты без ведущего нуля (0-59).
  • * nn — Минуты с ведущим нулем (00-59).
  • * s — Секунды без ведущего нуля (0-59).
  • * ss — Секунды с ведущим нулем (00-59).
  • * t — Только время в коротком формате.
  • tt — Только время в полном формате.
  • %dw — номер дня недели
  • * %dy — номер дня в году
  • * %wy — номер недели в году
  • * %wm — номер недели в месяце

Вот несколько примеров использования формата даты для организации структуры резервных копий в архиве.

Теукщий архив + месячные архивы.

Нам необходимо сохранять текущий ежедневный бэкап с глубиной 4 дня и в отдельной директории месячные архивы с глубиной 12 месяцев.

Это возможно сделать с помощью одного задания. Пример подобной конфигурации показан на рисунке.

В данном случае необходимо настроить основной архив с форматом даты «YYYYMMDD» и глубиной 4 дня. И дополнителную директорию для месчных архивов с форматом даты «YYYYMM» и глубиной 12 файлов. Лучше сохранять архивы в разные папки, если же основной и дополнительные архивы сохряняются в одной папке, то необходимо задать разные префиксы этих архивов, т.к. при удалении резервных копий в соответствии с глубиной программа удаляет файлы с текущим префиксом.

Обратите внимание на дополнительную директорию и формат даты «YYYYMM» т.е. при выполнении архивации ежедневно в течении месяца будет получаться одно и то же имя архива т.к. маска завист только от года и месяца. Таким образом при каждом выполнении архивации копирование в доп. директорию будет производиться затирая вчерашний архив. Что бы избежать подобного ненужного копирования необходимо выставить флаг «Если доп. архив уже существует отменить копирование». Если данный флаг установлени и программа обнаружит что файл в доп. директории уже существует APBackup пропустит копирование в дополнительную директорию. Получаем что при первом выполнении задания в месяце будет создаваться архив в доп. директории (например 02.06.2009 будет создана архив 200906) и до следующего месяца в доп. директорию копирование производиться не будет.

В итоге получим что у нас будет 4 последних ежедневыных архива и 12 архивов актуальных на начало каждого месяца.

Сортировка архивов по дереву папок в соответствии с датой.

Допустим есть директория в которую в течении дня приходят (выкладываются пользователями) файлы. В конце дня нам необходимо очистить эту директорию а файлы перенести в архив причем в архиве необходимо создать структуру директорий для быстрого поиска файлов за нужный день. Например Backup\2009\06\17\bak.zip (Хотя, как и в предыдущем примере совершенно не важно в каком режиме будет выполняться задание: архивирование или копирование файлов).

Для этого просто необходимо установить «префикс архива»=«Backup». А «формат даты»=«\YYYY\MM\DD\bak». Для удаления файлов источника установите опцию «Удалить файлы источника после архивации» на закладке «Источник архивации».

Теперь при каждом ежедныевном выполнении задания APBackup будет создавать структуру каталогов в соответствии с текущей датой помещать туда архив.

Обратите внимание что конечный архив «bak» не содержит символов входящих в макросы что бы не преобразовалось имя архив т.к. он указывается в поле «Формат даты».

В данном случае параметр глубина архива тоже действует и может быть задан например 12 месяцев.