Архівація повідомлень на поштовому сервері

Введення

Архівація повідомлень, що проходять через поштовий сервер і задовольняють вимогам заданих критеріїв проводиться за допомогою програми архівації повідомлень 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

[EXCLUDE]

#FILE=*.RAR,SIZE>30m
#RP=C:UA*
#DL=*PN:SYSOP

[EXCLUDE]

#FILE=*.RAR,SIZE>30g

[EXCLUDE]

#RP=C:UA*

[EXCLUDE]

#DL=*PN:SYSOP
У параметрі SIZE підтримується тільки оператор > (більше).