Я вижу два очевидных решения.
Если вы используете procmail в качестве MDA на вашем сервере, или хотите преобразовать его в использование, то вы можете запустить любой произвольный скрипт на любом произвольном почтовом ящике с помощью действия рецепта procmail |
(pipe). Надеюсь, он не будет запущен от имени root, но это должно быть легко сделать скрипт, который выполняет необходимую магию и который может быть вызван соответствующим пользователем без права passwordless от имени root. Вывод скрипта может быть даже передан обратно в ту же электронную почту и электронную почту позже доставлены, сделав рецепт действия фильтра.
Альтернативой (которая должна требовать меньшего практического обслуживания) является создание одного почтового ящика и настройка Postfix's $recipient_delimiter
на то, что обычно не используется для этой цели; например, .
или -
. Обратите внимание, что параметр receive_delimeter является настройкой для всего сервера. Допустим, вы устанавливаете почтовый ящик dummy@example.com
и устанавливаете $recipient_delimeter = .
. Это позволит dummy.@example.com
, который будет доставлять на локальный почтовый ящик, соответствующий dummy@example.com
. Чтобы отключить один из них, добавьте dummy.
в соответствующую таблицу получателей с действием отклонения. Недостатком является то, что это будет ловушка для префикса, так что вы захотите сделать префикс трудно наткнуться случайно или атаки по словарю. Недостатком является то, что в обычном случае (отправитель уважает ваши пожелания и не перепродает ваш почтовый адрес) такой подход требует нулевой поддержки, и вы всегда можете изменить префикс позже и явно перечислить те комбинации, для которых вы хотите продолжать получать почту.
, предполагая, что вы можете перезапустить программу и положить его в трубу, вы можете затем трусить его в xargs
, С помощью следующих предупреждений:
, поэтому вам нужно хвост
, чтобы быть , буферизацией линии . В зависимости от того, что вы установили:
stdbuf -o 0 tail -f FILE | xargs -i -n 1 terminal-notifier --message "{}"
unbuffer tail -f FILE | xargs " "
, и я видел версию Tailf
, которая поддерживала опцию -L
(выпученная).
Вы также можете подражать хвостовой форму
в Perl.
И вы можете заменить xargs
xargs
(даже если это довольно стандартный и повсеместный) со специально разработанным для петли
в оболочке (это не так просто, как просто, а не Это выглядит, хотя; это похоже на обработку имена файлов с пробелами в цикле).
Если вы не можете перезапустить программу, вам нужно перехватить его stdout. Вот Ответ на переполнение стека О этом. Описаны другие утилиты и сценарии, такие как riredirect здесь ; Я не знаю о своей совместимости с MacOS, хотя.
Выход может быть проанализирован нормально с утилитами, такими как SED или CUT:
Нематериал Hail -f file | Grep Animal |. Sed -e 'S / животное (. *) Gear / \ 1 /' | Скаргс ...
Таким образом, мы бы имеем:
Output by tail output by grep output by sed
correct horse battery staple
animal rhino gear animal rhino gear rhino
llama is animal llama is animal llama is animal
llama peruvian
animal ant gearbox animal ant gearbox antbox
( - выпученные
вариант GREP
могут быть использованы)