delete-after

<acct-file>Хаб задаёт сам

Сколько дней хранить закрытые файлы учёта
в конфигурации это строкаdelete-after 8dвнутри блока <acct-file>
Единственная автоматическая уборка учёта

Строка задаёт, сколько дней MTA хранит закрытый файл учёта, прежде чем удалить его. Умолчание — 8d, и есть значение never.

🔴 Действует только пока move-to выключено. Как только файлы начинают уезжать в другой каталог, срок хранения на них не распространяется вовсе — за архивом надо следить самим.

Это единственная автоматическая уборка учёта. Больше ничего файлы не удаляет; нижний порог свободного места на узле касается спула и писем, а не каталога учёта.

Срок задаётся в днях. Более мелкой единицы у этой строки нет: час или минуту сюда не написать.

Главная ловушка — включить перемещение и не заметить, что уборка выключилась вместе с ним. Файлы продолжают появляться, теперь в архиве, и не удаляются никогда. Обнаруживается это по свободному месту через недели или месяцы.
Что делает Хаб. Пишет — delete-after 7d в файловом блоке.

Семь дней у нас работают именно потому, что move-to мы не задаём. Неделя — осмысленный срок: основной поток уходит вебхуком и лежит у нас в базе, а файл читает модуль «Статистика учёта», и ещё он нужен, чтобы сверить или восстановить пропуск за недавнее время.

Рекомендуемые значения

Срок соразмеряют с тем, зачем файл вообще нужен:

Значение Когда
7d–8d файл страховочный, основной учёт уходит в другое место
30d и больше файл — единственный источник статистики
never файлы забирает внешний сборщик и удаляет сам

С включённым перемещением строка не действует — ни при каком значении.

Умолчание 8d, значение never и правило «только при выключенном move-to» — из руководства (§ 3.3.11.1). Разбор нашего срока — по шаблону Хаба.
Пример в конфигурации
# неделя для страховочного файла: основной учёт уходит вебхуком
<acct-file /var/log/pmta/acct.csv>
    max-size 25M
    delete-after 7d</acct-file>
Стоит проверить, что рядом нет move-to: с ним эта строка ничего не делает, и каталог будет расти.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

Типичные ошибки и проблемы

что делают не так и чем это кончается2 ошибки▶

Включают перемещение и теряют автоматическую уборку

§ 3.3.11.1

Чем чреватоСрок хранения перестаёт действовать. Файлы копятся в каталоге назначения бесконечно, и заметно это становится по свободному месту, а не по ошибке.
Как заметитьВ архиве файлы старше заданного срока.
Как правильноУбирать архив своими средствами — по расписанию или ротацией операционной системы.

Ставят срок в часах

наш опыт

Чем чреватоЕдиница здесь только дни. Значение с другой единицей MTA не примет, и конфигурация не пройдёт проверку.
Как заметитьpmta test config ругается на значение директивы.
Как правильноЗадавать в днях; для более частой уборки пользоваться размером файла и внешней ротацией.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
delete-after <retention>
Значения
Nd — число дней, либо never
Умолчание
8d § 3.3.11.1
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<acct-file>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Наследования нет: строка живёт внутри своего <acct-file> и касается только его файлов. Разные потоки учёта могут храниться разное время.
Как проверить на узле
Проверка прямая — самый старый файл в каталоге не должен быть старше срока:
ls -la --time-style=long-iso /var/log/pmta/acct*.csv | head -3
Файлы старше заданного срока означают, что уборка не работает. Первое, что стоит проверить, — не задан ли рядом move-to.
В Хабе
Управляется
Аналитика → Учёт узла
Значение
Хаб подбирает сам — темп, стадия прогрева, метрики
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Собрать телеметрию