Программа 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 месяцев.