spool-min-free-space

Globalустарела

Порог свободного места до отказа в приёме — устаревшая форма
в конфигурации это строкаspool-min-free-space 0внутри блока Global
Один порог на все каталоги

Строка останавливала приём писем в каталог спула, когда свободного места на его файловой системе становилось меньше порога. Когда место возвращалось, приём возобновлялся сам. На Unix счёт шёл по месту, доступному непривилегированным пользователям.

Директива объявлена устаревшей. Замена — min-free-space внутри блока <spool>.

Разница не в поведении, а в области: прежняя строка задавала один порог сразу всем каталогам, новая — своя у каждого. Это и было причиной замены: каталоги спула нередко лежат на разных файловых системах, и общий порог для них не имеет смысла.

Главная ловушка — держать обе строки. Они решают одну задачу с разной областью, и сочетание «общий порог плюс свой у каталога» руководство не оговаривает. Разбираться, какая победит, придётся опытом — а нужды в этом нет: новая покрывает все случаи старой.
Что делает Хаб. Эту строку не пишет — пишет замену: min-free-space внутри <spool /var/spool/pmta>, пять процентов диска узла, но не меньше гигабайта и не больше десяти.

Устаревшую строку стоит искать в конфигурациях, собранных руками до перехода на Хаб.

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

Что ставить. Ничего: строку следует убрать.

Значение Когда
не писать всегда: задачу решает строка внутри блока каталога
число мегабайт только в старой конфигурации, которую ещё не перевели

Перевод простой: порог переносится внутрь блока каждого каталога — уже с множителем размера, 1024 становится 1024m или 1g, — и там же уточняется по его файловой системе.

Назначение, оговорка про место для непривилегированных пользователей и пометка об устаревании с указанием замены — из руководства, § 3.3.1.7. Разбор разницы в области наш.
Пример в конфигурации
# так было раньше — один порог на все каталоги, число в мегабайтах
spool-min-free-space 1024
Сегодня то же пишется внутри блока каждого каталога: у них разные файловые системы, и порог у каждого свой.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Оставляют устаревшую строку рядом с новой

§ 3.3.1.7

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

Задают общий порог каталогам на разных дисках

наш опыт

Чем чреватоПорог, разумный для большого диска, окажется слишком мягким для маленького — и тот кончится раньше, чем сработает предохранитель.
Как заметитьОдин из каталогов упирается в конец диска, а порог не срабатывает.
Как правильноЗадавать порог внутри блока каждого каталога, глядя на его файловую систему.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
spool-min-free-space N
Значения
целое число мегабайт, либо 0
Умолчание
0 § 3.3.1.7
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
Global
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива пишется в корне файла конфигурации и действовала сразу на все каталоги спула. Именно эта общность и стала причиной замены: у новой строки область — один каталог.
Как проверить на узле
Устаревшую строку стоит искать вместе с её заменой:
grep -n 'spool-min-free-space' /etc/pmta/config
grep -n -A4 '^<spool' /etc/pmta/config
Если нашлись обе формы, конфигурацию надо привести к одной: устаревшую убрать, порог задать внутри блока каждого каталога.
В Хабе
Цена ошибки
безопасно: неверное значение ничего не ломает
Сценарии
Подготовить узел к отправке