Введення
Архівація повідомлень, що проходять через поштовий сервер і задовольняють вимогам заданих критеріїв проводиться за допомогою програми архівації повідомлень FMARC, яка входить до складу стандартної поставки поштового вузла FossMail32. У попередніх налаштуваннях поштового вузла запуск програми виконується автоматично при проходженні більше 100 файлів поштової кореспонденції (ФПК). Рядок запуску програми знаходиться в розділі [TASKS] файлу HOST.CFG.
#SERVICE_TASK=FMARC,Архиватор сообщений,C:\FossMail32\bin\FMARC.NET.EXE -c C:\FossMail32\host.cfg -l -e,sntpc,,C:\FossMail32\BE > 100
Повідомлення архівуються в * .zip файли, доступ до повідомлень може бути отриманий з програми “Програма перегляду бази даних конвертів FmStat“.
Параметри програми.
Параметри конфігурації записуються у файл HOST.CFG
Розділ [FMARC]:
#ARC_PERIOD – період створення архівів (в годинах), тобто якщо задано значення 24, то виконується архівація в єдиний добовий архів, якщо задано 1, то буде створено 24 погодинних архіва.
#DELETE_AFTER_DAYS – ас життя архівного файлу в днях. Якщо значення не порожнє і більше 0, то всі архіви старше вказаної кількості днів видаляються.
#COMPRESSION_LEVEL – не вказано – адаптивний (рекомендуеться), 0 – найкраща швидкість, 9 – найкраща компресія.
#RECYCLE_PATH – якщо вказано значення параметру #DELETE_AFTER_DAYS, прострочені ФПК не будуть видалятись із системи, а будуть копіюватися у вказаний каталог.
Розділ [COMMON]:
#BE_DIR – каталог з копіями ФПК, що проходять через вузол
#BAD_DIR – каталог помилкових ФПК. Якщо цей каталог не заданий то помилкові ФПК видаляються.
#ZIP_DIR – шлях до архівів.
#LOG_DIR – каталог для LOG файлів.
#ERR_DIR – каталог для журналу помилок, якщо такі були.
Конфігурування внутрішнього фільтра архіватора, що дозволяє вибіркове збереження ФПК в залежності від заданих критеріїв, виконується через допоміжний файл, посилання на який задана в параметрі #CONFIG_FILE секції [FMARC]
Алгоритм роботи
Програма запускається монітором завдань поштового вузла за умови перевищення заданої кількості ФПК в каталозі, що вказано параметром #BE_DIR файла конфігурації Host.cfg. У разі відсутності файлу конфігурації Host.cfg в заданому параметром –с <повне ім’я> або в поточному каталозі – на екран видається повідомлення, та робота припиняється. При цьому всі дії записуються в log-файл (якщо завдання запущене з параметром -l). У разі виникнення помилок, причина заноситься до журналу помилок, який ведеться у каталозі, заданому параметром #ERR_DIR. Після всіх ФПК, якщо не задано реплікацію на резервний сервер, завдання завершує своє виконання. Необхідно відзначити, що розглядаються повідомлення тільки з папки, заданій у #BE_DIR. Фільтр, які ФПК не копіюються в #BE_DIR, задається параметром #EXCLUDE_TYPE, заданий в Host.cfg, секції [ROUTER].
Обробка обраного ФПК
Обробка ФПК виконується в наступній послідовності:
- Обирається ФПК з каталогу #BE_DIR.
- Із часу приходу на вузол записаного в .IТ конверта та параметра #ARC_PERIOD генерується новий архівний файл (або відкривається існуючий), до якого архівується ФПК. Формат назви архіву: YYMMDDHH–HH.zip. У даний архів потрапляють файли із значенням часу (.IT) від HH до -HH у годинах. Рівень компрессії – згідно заданного параметру #COMPRESSION_LEVEL.
- Якщо розмір архівного файла превищує дозволений, відкривається новий файл в розширенні якого добавляється індекс. Це дозволяє зробити кожен том автономнім архівом та суттєво зменшує час додавання нових ФПК та їх пошук. Приклади: 21090100-24.zip1, 21090100-24.zip2 – архіви для ФПК, які надійшли до поштового серверу 01 вересня 2021р з 00 до 24 годину, том перший та другий.
Структура імені LOG файлу – YYMMDDar.LOG. При безперервній роботі і переході через 0 годин ім’я автоматично змінюється.
Завдання критеріїв збереження повідомлень
Фільтр може бути налаштований так, що тільки повідомлення, що задовольняють умовам, будуть архівуватися. Самі умови заносяться в додатковий файл, шлях до якого задається в параметрі #CONFIG_FILE. Файл складається з секцій [EXCLUDE], що містять умови. Усередині секції умови об’єднуються по логічному І, а самі секції – по логічному АБО. Приклад файлу з умовами:
[EXCLUDE]#FILE=*.*,SIZE>30k; розмірність: k-кілобайт, m-мегабайт, g-гігабайт
#RP=C:UA*
#DL=…PN:SYSOP
#FILE=*.RAR,SIZE>30m
#RP=C:UA*
#DL=*PN:SYSOP
#FILE=*.RAR,SIZE>30g
[EXCLUDE]#RP=C:UA*
[EXCLUDE]#DL=*PN:SYSOP
У параметрі SIZE підтримується тільки оператор > (більше).