|
|
www.lissyara.su
—> документация
—> EXIM
—> 4.70
—> часть 50
50. Утилиты exim'a
Множество скриптовых утилит и программ поставляются с exim'ом и описано в этой части. Также, есть Exim Monitor, который описыватся в следующей части. Описанные утилиты таковы:
50.1 “exiwhat ” - список, что делают процессы exim'a
50.2 “exiqgrep ” - выбор из очереди
50.3 “exiqsumm ” - суммирование очереди
50.4 “exigrep ” - поиск по главному логу
50.5 “exipick ” - выбор сообщений по различным критериям
50.6 “exicyclog ” - ротация лог-файлов
50.7 “eximstats ” - выбор статистики из логов
50.8 “exim_checkaccess ” - проверка приёма адреса с данного IP
50.9 “exim_dbmbuild ” - сборка файла DBM
50.10 “exinext ” - извлечение информации повторов
50.11 “exim_dumpdb ” - дамп БД подсказок
50.11 “exim_tidydb ” - очистка БД подсказок
50.11 “exim_fixdb ” - правка БД подсказок
50.15 “exim_lock ” - блокировка файла почтового ящика (mailbox)
Другая утилита, которая могла бы использоваться на сайтах с многими MTA - “exilog ” Tom Kistner’s. Он обеспечивает визуализацию логов от многих серверов exim'a. Для деталей, смотрите http://duncanthrax.net/exilog/.
50.1 Поиск, что делают процессы exim'a (exiwhat)
На операционных системах, которые могут перезапускать системные вызовы после получения сигнала (большинство современных OS), процесс exim'a отвечает на сигнал SIGUSR1, путём записи строки описывающей, что он делает в файл “exim-process.info ” в директории спула exim'a. Скрипт “exiwhat ” посылает сигнал всем процессам exim'a, которые он находит, вначале очистив файл. После чего он ждёт секунду, чтобы позволить процессам exim'a отреагировать, до отображения результатов. Для успешного управления “exiwhat ”, вы должны обладать достаточными привилегиями для посылки сигнала процессам exim'a, таким образом, обычно, он запускается от рута.
Предупреждение: Это неэффективный процесс. Он предназначен для случайного использования администраторами системы. Неразумно, например, настраивать скрипт, который через короткие периоды посылает процессам exim'a сигнал SIGUSR1.
К сожалению, команда “ps ” которую “exiwhat ” использует для нахождения процессов exim'a, различна в разных операционных системах. Мало того, что используются различные опции, но и формат вывода - различен. Для этого, есть некоторые систменые конфигурационные опции, которые конфигурируют, как работает “exiwhat ”. Если вам кажется, что он не работает, проверьте следующие компиляционные опции:
EXIWHAT_PS_CMD - команда для запуска “ps ”
EXIWHAT_PS_ARG - аргумент для “ps ”
EXIWHAT_EGREP_ARG - аргумент для “egrep ”, для выбора из вывода “ps ”
EXIWHAT_KILL_ARG - аргумент для команды “kill ”
Пример типичного вывода “exiwhat ”:
164 daemon: -q1h, listening on port 25
10483 running queue: waiting for 0tAycK-0002ij-00 (10492)
10492 delivering 0tAycK-0002ij-00 to mail.ref.example
[10.19.42.42] (editor@ref.example)
10592 handling incoming call from [192.168.243.242]
10628 accepting a local non-SMTP message
| Превое число в строке вывода - номер процесса. Третья строка была разделена, чтоб уместиться в странице.
50.2 Селективный просмотр очереди (exiqgrep)
Эта утилита - скрипт на Perl, предоставленный Matt Hubbard. Он запускает
для получения списка очереди, содержащего лишь недоставленных получателей, и затем выбирает из вывода сообщения, которые совпадают с заданными критериями. Доступны следющие опции выбора:
“-f <regex> ” - Совпадение с адресом отправителя. Проверяемое поле окружено угловыми скобками, таким образом, вы можете проверить рикошеты используя
“-r <regex> ” - Совпадение с адресом получателя. Проверяемое поле не окружено угловыми скобками.
“-s <regex> ” - Совпадение с полем размера.
“-y <seconds> ” - Совпедение сообщений, которые раньше данного времени.
“-o <seconds> ” - Совпедение сообщений, которые старше данного времени.
“-z ” - Совпадение лишь с замороженными сообщеними.
“-x ” - Совпадение лишь с незамороженными сообщеними.
Следующие опции управляют форматированием вывода:
“-c ” - Показ только счётчика совпавших сообщений.
“-l ” - Длинный формат - показывает полную информацию, как в выводе exim'a. Это - значение по умолчанию.
“-i ” - Показывает лишь идентификаторы сообщений.
“-b ” - Краткий формат - одна строка на сообщение.
“-R ” - Показывает сообщения в обратном порядке.
Есть ещё одна опция, “-h ”, которая выводит список всех опций.
50.3 Подведение итогов очереди (exiqsumm)
Утилита “exiqsumm ” - скрипт на perl, который читает вывод “exim -bp ” и сложение сообщений в очереди. Таким образом, вы можете использовать его путём запуска команды типа такой:
Вывод состоит из одной строки для каждого домена, который имеет ожидающие сообщения, как в следующем примере:
3 2322 74m 66m msn.com.example
| Каждая строка перечисляет висящие доставки для домена, их полный объём, и отрезки времени, которые ожидают самое старое и самое новое сообщения. Отметтьте, что число зависших доставок больше чем число сообщений, когда сообщения имеют более одного получателя.
Итоговая строка выводится в конце. По умолчанию, вывод сортируется по доменному имени, но “exiqsumm ” обладает опциями “-a ” и “-c ”, вызывающих сортировку вывода по наиболее старым сообщениям, и по счётчику сообщений, соотвественно. Также есть три опции, которые делят сообщения для каждого домена в два или более подсчётчика: “-b ” - отделяет рикошеты, “-f ” - отделяет замороженные сообщения, и, “-s ” - разделяет сообщения по их отправителю.
Вывод “exim -bp ” содержит оригинальные адреса в сообщении, таким образом, он также применяется к выводу “exiqsumm ”. Домены сренерированные из адресов в результате альясинга или форвардинга - не включаются (если не использовалась опция “one_time ” роутера “redirect ” для конвертации из в адреса “верхнего уровня ”).
50.4 Извлечение специфической информации из лога (exigrep)
Утилита “exigrep ” - скрипт на perl, который ищет по одному или нескольким главным логам элементы совпадающие с заданным шаблоном. Когда он находит совпадение, он извлекает все записи логов для уместного сообщения, а не только совпавшие с шаблоном. Таким образом, “exigrep ” может извлекать полный лог для заданного сообщения, или всю почту для заданного пользователя, или для заданного хоста, например. Входные файлы должны быть в формате логов exim'a или syslog. Если совпадающие строки логов не ассоциируются с определённым сообщением, то они включаются в вывод “exigrep ” без каких-либо дополнительных строк. Использование:
exigrep [-t<n>] [-I] [-l] [-v] <pattern> [<log file>] ...
| Если имя лог-файла не дано в командной строке, читается стандартный ввод.
Аргумент “-t ” определяет число секунд. Он добавляет дополнительное условие для выбора сообщения. Сообщения которые являются полными, показываются лишь если они провели в очереди более чем “<n> ” секунд.
По умолчанию, “exigrep ” ищщет регистронезависимо. Опция “-I ” делает его регистрозависимым. Это может повысить производительность при поиске по большим файлам журналов. Без “-I ”, шаблон perl'a проверяется с использованием опции “/i ”; c “-I ” - без неё. В обоих случаях, возможно изменить регистрозависимость внутри шаблона, используя “(?i) ” или “(?-i) ”
Опция “-l ” - буквальная, для обработки всех символов шаблона как они есть. Иначе паттерн должен быть регулярным выражением perl. Сравнение шаблона нечувствительно к регистру. Если в командной строке не задано имя файла, читается стандартный ввод.
Опция “-v ” - инвертирует совпадение. Таким образом, выбираются строки не совпадающеи с шаблоном.
Если местоположение команды “zcat ” известно из определения ZCAT_COMMAND в “Local/Makefile ”, “exigrep ” автоматически передаёт файлы, чьи имена заканчиваются на COMPRESS_SUFFIX, через “zcat ” и затем ищет.
50.5 Отбор сообщений по различным критериям (exipick)
Утилита John Jetmore - “exipick ”, включена в дистрибутив exim'a. Она выводит список сообщений из очереди согласно разнообразным критериям. Для детальной информации “exipick ” посетите страницу http://www.exim.org/eximwiki/ToolExipickManPage, или запустите “exipick ” с опцией “--help ”.
50.6 Ротация лог-файлов (exicyclog)
Скрипт “exicyclog ” может быть использован для ротации логов “mainlog ” и “rejectlog ”. В этом нет необходимости лишь если используется syslog, или если вы используете файлы логов со штампом даты в их именах (смотрите раздел 49.3). Некоторые операционные системы имеют собственные стандартные механизмы для ротации логов, и, если предпочитаете, они могут использоваться вместо “exicyclog ”. Есть два варианта опций командной строки для “exicyclog ”:
“-k <count> ” - определяет число оставляемых лог-файлов, перезадавая значение по умолчанию, установленное при сборке exim'a. Значение по умолчанию этого счётчика - 10.
“-l <path> ” - определяет путь к файлам логов, в том же формате, что и в опции exim'a “log_file_path ” (например, “/var/log/exim_%slog ”), перезадавая значение по умолчанию скрипта, который находит значение из конфигуции exim'a.
Каждый раз при запуске “exicyclog ” файлы передвигаются вниз на один. Если имя главного лока файлов - “mainlog ” (по умолчанию), тогда при запуске “exicyclog ” “mainlog ” становиться “mainlog.01 ”, предыдущий “mainlog.01 ” в “mainlog.02 ” и т.д. до предела, установленного в скрипте или опцией “-k ”. От файлы логов, чьи имена превысили лимит - отказываются. Лог отклонённых обрабатывается подобным образом.
Если лимит более 99, скрипт использует 3-х цифровые номера, типа “mainlog.001 ”, “mainlog.002 ”, и т.д.Если вы изменяете число менее 99 на большее чем 99, или наоборот, вы должны будете исправить имена существующих логов.
Если файл “mainlog ” не существует, скрипт ничего не делает. Файлы которые достигли конца - удаляются. Все файлы чей номер более 01 - сжимаются, используя команду сжатия сконфигурированную установкой COMPRESS_COMMAND в “Local/Makefile ”. Обычно, “exicyclog ” запускается ежедневно из root`ового “crontab ”, строкой формы:
1 0 * * * su exim -c /usr/exim/bin/exicyclog
| предполагая, что вы используете для пользователя exim'a имя “exim ”. Вы можете запускать “exicyclog ” от root`a, если вы этого желаете, но в этом нет необходимости.
50.7 Почтовая статистика (eximstats)
Скрипт на perl с именем “eximstats ” предоставлен для извлечения статистической информации из лог-файлов. Вывод - является простым текстом, или HTML. Логи exim'a также поддерживаются системой “Lire ”, сделанной LogReport Foundation http://www.logreport.org/.
Скрипт был нерабочим а течение долгого времени. Последняя версия - результат довольно большой переработки Steve Campbell. По умолчанию, даётся много информации, но есть опции для подавления некоторых её частей. После любых опций, аргументами должны быть файлы главного лога. Например:
eximstats -nr /var/spool/exim/log/mainlog.01
| По умолчанию, “eximstats ” извлекает информацию о числе и объёме соощений полученных или доставленных на различные хосты. Информация сортирована по обоим, счётчику сообщений и по объёму, и высшие 50 хостов, в каждой категории, перечислены в стандартном выводе. Подобная информация, основанная на почтовых адресах или доменах, может быть запрошена при помощи различных опций. Для сообщений, доставляемых и передаваемых локально, подобная статистика делается на основании пользователей.
Вывод, также включает общий счётчик и статистику о ошибках доставки, и гистограммы, показывающие число сообщений переданных и доставленных на каждый час дня. Доставки с более чем одним адресом в конверте (например, SMTP транзакция с более чем одной командой RCPT) подсчитывается как одна доставка.
Хотя, обычно, уведомляется о большем числе доставок чем приёмов (поскольку сообщения могут иметь более одного получателя), “eximstats ” может сообщить сообщить о большем числе отправленных сообщений, чем было получено, даже если очередь пуста в начале и в конце рассматриваемого периода. Если входящее сообщение не содержит допустимых получателей, для него доставки не записываются. Рикошеты обрабатываются как полностью независмые сообщения.
Скрипт “eximstats ” всегда выводит полное резюме, дающее объём и число переданных и доставленных сообщений, и число хостов вовлечённых в каждый случай. Также он выводит число задержанных сообщений (т.е. которые не были полностью доставлены в первую попытку), и число тех, у которых хотя бы один ардет был неудачен.
Оставшийся вывод находится в секциях, которые могут быть независимо отключены, или модифицированы различными опциями. Он состоит из изложения доставко по транспортам, гистограмм сообщений переданных и доставленных по интервалу времени (по умолчанию - по часу), информации р времени сообщений проведённом в очереди, списке релееных сообщений, списке высшиих 50 хостов по отправке, локальных отправителей, хостов назначения, и назначении локальных пользователей по счётчику и объёму, и списку происходивших ошибок доставки.
Информация о релеинге перечисляет список сообщений которые были реально отрелеены, т.е. которые прибыли с удалённого хоста и были непосредственно доставлены на некоторый другой удалённый хост, без локальной обработки (например, без альясинга или форвардинга).
Есть довольно много вариантов управления опциями “eximstats ”, для точного управления его выводом. Они непосредственно задокументированы в перл-скрипте, и могут быть извлечены путём запуска команды “perldoc ” для скрипта. Например:
perldoc /usr/exim/bin/eximstats
|
50.8 Проверка политики доступа (exim_checkaccess)
Аргумент командной строки “-bh ” позволяет вам запускать поддельную SMTP сессию с отладочным выводом, для проверки, что делает exim когда применяет управление политиками ко входящей SMTP-почте. Однако, не все достаточно знакомы с протоколом SMTP, чтобы быть в состоянии полностью использовать “-bh ”, и иногда вы лишь хотите ответа на вопрос - имеет ли какой-то адрес доступ? - без получения дополнительных деталей.
Утилита “exim_checkaccess ” - “упакованная ” ( “packaged ”) версия “-bh ”. Она понимает два аргумента, IP-адрес и адрес электронной почты:
exim_checkaccess 10.9.8.7 A.User@a.domain.example
| Утилита управляет вызовом exim с опцией “-bh ”, для тестирования, будет ли принят данный почтовый адрес в команде RCPT в соединении TCP/IP от хоста с заданным IP адресом. Вывод утилиты - или слово “accepted ”, или ошибочный ответ SMTP, например:
Rejected:
550 Relay not permitted
| При работе этого теста, утилита использует “<> ” как отправителя конверта в команде MAIL, но вы можете это изменить, предоставляя дополнительные опции. Их передают непосредственно команде exim'a. Например, для задания, что тест запускается с адресом отправителя “himself@there.example ”, вы можете использовать:
exim_checkaccess 10.9.8.7 A.User@a.domain.example \
-f himself@there.example
| Отметтьте, что эти дополнительные элементы командной строки exim'a нужно давать после двух обязательных элементов.
Поскольку “exim_checkaccess ” использует “-bh ”, он не выполянет обратный вызов при проведении проверки. Вы можете запустить проверку с включением обратного вызова используя “-bhc ”, но это недоступно в “упакованной ” ( “packaged ”) форме.
50.9 Создание файлов DBM (exim_dbmbuild)
Программа “exim_dbmbuild ” читает входной файл, содержащий ключи и данные в формате используемом поиском “lsearch ” (смотрите раздел 9.3). Она пишет файлы DBM используя имена альясов в нижнем регистре как ключи, и оставшуюся информацию - как данные. Приведение к нижнему регистру может быть предотвращено путём вызова программы с опцией “-nolc ”.
Завершающий ноль включается как часть ключевой строки Это ожидается типом поиска “dbm ”. Однако, если задана опция “-nozero ”, “exim_dbmbuild ” создаёт файлы без завершающих нулей в строках ключей, или строках данных. Тип поиска “dbmnz ” может быть использован с такими файлами.
Программа требует двух аргументов: имя входного файла (который может быть одним дефисом, для индикации стандартного ввода), и именем выходного файла. Она создаёт вывод с временным именем, и, затем, переименовывает его, если всё успешно.
Если используется родной интерфейс DB (USE_DB установлена в компиляционном конфигурационном файле - это часто бывает в свободных версиях UNIX) два имени файлов должны быть различными, поскольку в этом режиме, функции Berkeley DB создают один выходной файл, используя точно заданное имя. Например:
exim_dbmbuild /etc/aliases /etc/aliases.db
| читает файл системных альясов, и создаёт его DBM версию в “/etc/aliases.db ”.
В системах, которые используют шаблоны “ndbm ” (большинство проприетарных версий UNIX), используются два файла, с суффиксами “.dir ” и “.pag ”. В этом окружении, суффиксы добавляются ко второму аргументу “exim_dbmbuild ”, таким образом он может быть как и первый. Это также имеет место, когда функции Berkeley используются в совместимом режиме (хотя это не рекомендуется), поскольку в этом случае к имени файла добавляется суффикс “.db ”.
Если происходит столкновение с двойным ключом (повторяющимся - прим. lissyara), программа выводит предупреждение, и после завершения, она возвращает код 1, а не ноль, если не задана опция “-noduperr ”. По умолчанию, используется лишь первый дубликат - это делает её совместимой с поисками “lsearch ”. Также, есть опция “-lastdup ”, вызывающая использование последнего дубликата вместо первого. Ещё есть опция “-nowarn ”, которая останавливает перечисление двойных ключей на “stderr ”. Для других ошибок, при которых новый файл, фактически, не создаётся, код возврата - 2.
50.10 Нахождение индивидуальных времён повторов (exinext)
Утилита, называемая “exinext ” (по большей части - скрипт perl), предоставляет возможность выбрать специфическую информацию из БД повторов. Данный почтовый домен (или полный адрес) ищется в хостах для этого домена, и выводит любую информацию повторов для хоста или домена. В настоящее время, информация повторов получается путём запуска “exim_dumpdb ” (смотрите ниже), и последующей обработки её вывода. Например:
$ exinext piglet@milne.fict.example
kanga.milne.example:192.168.8.1 error 146: Connection refused
first failed: 21-Feb-1996 14:57:34
last tried: 21-Feb-1996 14:57:34
next try at: 21-Feb-1996 15:02:34
roo.milne.example:192.168.8.3 error 146: Connection refused
first failed: 20-Jan-1996 13:12:08
last tried: 21-Feb-1996 11:42:03
next try at: 21-Feb-1996 19:42:03
past final cutoff time
| Также, вы можете дать “exinext ” локальную часть, без домена, и он выдаст любую информацию повторов для этой локальной части, в вашем дефолтовом домене. Идентификатор сообщения может использоваться для получения информации повторов относящейся к специфическому сообщению. Она существует лишь когда попытка доставки сообщения на удалённый зост привела к специфической для сообщения ошибки (смотрите раздел 45.2). “exinext ” - не очень эффективен, но, как ожидается, он не будет часто запускаться.
Утилита “exinext ” вызывает exim для нахождения информации, типа расположения spool-директории. Утилита имеет опции “-C ” и “-D ”, передаваемые командам “exim ”. Первая определяет альтернативный конфигурационный файл exim'a, и вторая устанавливает макрос для использования в конфигурационном файле. Эти особенности должны помочь в тестировании, но они, также, могли бы быть полезны в окружении, где используется более одного конфигурационного файла.
50.11 Обслуживание БД подсказок
Три утилиты предоставляются для обслуживания файлов DBM, которые exim использует для хранения его информации подсказок о доставках. Каждая программа требует двух аргументов. Первый определяет имя директории спула exim'a, и второй - имя БД с которой она работает. Они, таковы:
“retry ”: БД информации повторов
“wait-<transport name> ”: БД информации о сообщениях, ожидающих удалённых хостов
“callout ”: кэш обратных вызовов
“ratelimit ”: данные для осуществления условий ACL ограничения частоты
“misc ”: иные данные подсказок
БД “misc ” используется для
Сериализации запусков ETRN (когда установлена “smtp_etrn_serialize ”)
Сериализации доставки к специфическому хосту (когда “smtp_etrn_serialize ” установлена в транспорте “smtp ”)
50.12 exim_dumpdb
Всё содержимое БД пишется на стандартный вывод, при помощи программы “exim_dumpdb ”, которая не имеет опций или аргументов кроме как имена спула и БД. Например, для дампа БД повторов:
exim_dumpdb /var/spool/exim retry
| На каждое вхождение производится две строки вывода:
T:mail.ref.example:192.168.242.242 146 77 Connection refused
31-Oct-1995 12:00:12 02-Nov-1995 12:21:39 02-Nov-1995 20:21:39 *
| Первый элемент в первой строке - ключ записи. Он начинается с одной из букв - “R ” или “T ”, в зависимоти от того, ссылается ли она на повтор роутинга, или транспорта. Для локальной доставки, следующая часть - локальный адрес; для удалённой доставки - это имя удалённого хоста, сопровождаемое его неудачным IP-адресом (за исключением случая когда “retry_include_ip_address ” установлена в “false ” в транспорте “smtp ”). Если удалённый порт не стандартный (порт 25), он добавляется к IP-адресу. Затем следует код ошибки, дополнительный код ошибки, и текстовое описание ошибки.
Три времени во второй строке - время первой ошибки, время последней попытки доставки, и вычисленное время для следующей попытки. Строка завершается звёздочкой, если время убывания для последнего повтора было превышено.
Каждая строка вывода “exim_dumpdb ” для БД “wait-xxx ” содержит имя хоста, сопровождаемое списком идентификаторов для сообщений, которые есть, или ждут доставки на этот хост. Если для какого-то хоста очень много (идентификаторов, наверное - прим. lissyara), могут быть замечены повторяющиеся записи, с номерами последовательности добавленным к имени хоста. Данные в этих записях, часто являются устаревшими, поскольку сообщение может быть сроучено к нескольким альтернативным хостам, и exim не предпринимает усилий для ведения перекрёстных ссылок.
50.13 exim_tidydb
Утилита “exim_tidydb ” используется для упорядочивания содержимого БД подсказок. Если она запускается без опций, она удаляет все записи, которые старше 30 дней. Возраст вычисляется из даты и времени, когда запись была последний раз обновлена. Отметтьте, что в случае БД повторов, это не время с момента первого отказа. Информация о хосте, который лежал более 30 дней останется в БД, при условии, что записи обновляются достаточно часто.
Дата сокращения может быть изменена путём опции “-t ”? которая должна сопровождаться временем. Например, для удаления всех записей которые старше недели из БД повторов:
exim_tidydb -t 7d /var/spool/exim retry
| Обе БД - “wait-xxx ” и “retry ”, содержат элементы, которые вовлекают идентификаторы сообщений. Они фигурируют в форме данных в записях, где ключи - хосты, они были сообщениями ожидавшими этих хостов - и в последующем они - ключи для информации о сообщениях, перенёсших определённые типы ошибок. Когда “exim_tidydb ” работает, производится проверка? что идентификаторы сообщений записанные в БД - это сообщения, которые всё ещё в очереди. Идентификаторы для сообщений, которые больше не существуют, удаляются из записей “wait-xxx ”, и если остаются пустые записи, они удаляются. Для БД “retry ”, удаляются записи чьи ключи - идентификаторы несуществующих сообщений. Утилита “exim_tidydb ” выводит комментарии на стандартный вывод каждый раз, когда она удаляет информацию из БД.
Определённые записи автоматически удаляются exim'ом когда они больше не нужны., но иные не удаляются. Например, если все MX хосты домена лежат, записи повторов создаются для каждого из них. Если первичный MX подымется первым, его запись удалится, когда exim успешно доставит на него, но записи для других - останутся, поскольку exim не пробовал эти хосты.
Это важно, поэтому, периодически запускайте “exim_tidydb ” для всех БД подсказок. Вы должны делать это в спокойное время суток, поскольку она требует, чтобы БД была заблокирована (и, поэтому, недоступна exim'y) когда она работает. Удаление записей из файлов DBM, обычно, не делает файл меньше, но все обычные библиотеки DBM умеют заново использовать освобождённое место. После начальной фазы увеличения в размере, БД, обычно, достигают точки, в которой они не становятся намного больше, пока они регулярно обслуживаются.
Предупреждение: Если вы никогда не будете запускать “exim_tidydb ”, то вероятно, используемое БД подсказок место будет продолжать увеличиваться.
50.14 exim_fixdb
Программа “exim_fixdb ” - утилита для интерактивной можификации БД. Главное её использование - для тестирования exim'a, но, также, иногда она может быть полезна для обхода проблемы на живой системе. Она не имеет опций, и её интерфейс несколько грубоват. На входе, она выводит подсказку в виде правой угловой скобки. В это время может быть введён ключ записи, и будут отображены данные для этой записи.
Если в следующеи приглашении будет введено “d ”, запись будет удалена. Для всех кроме БД “retry ”, это - единственная возможная операция. Для БД “retry ”, каждое поле предшествуется номером, и данные для индивидуальных полей могут быть изменены путём ввода номера поля, сопровождаемого новыми данными, напрмер:
сбросит время следующей попытки доставки. Значение времени даётся как последовательность цифровых пар для года, месяца, дня, часа, и минут. Двоеточия могут использоваться как опциональные разделители.
50.15 Обслуживание почтового ящика (exim_lock)
Утилита “exim_lock ” блокирует файл почтового ящика, используя тот же самый алгоритм что и exim. Для обсуждения проблем блокировки, смотрите раздел 26.3. “exim_lock ” может быть использована для предотвращения какой-либо модификации почтового ящика exim'ом или пользовательским агентом, при исследовании проблемы. Утилита требует имя файла как её первый аргумент. Если блокировка успешна, второй аргумент запускает команду (используя функцию “system() ” С); если второй аргумент не задан, используется значение переменной окружения SHELL; если она не задана или пуста, запускается “/bin/sh ”. Когда команда завершается, почтовый ящик разблокируется, и утилита завершается. Доступны следующие опции:
“-fcntl ” - Использовать для блокировки открытого почтового ящика “fcntl() ”.
“-flock ” - Использовать для блокировки открытого почтового ящика “flock() ”, если операционная система это поддерживает.
“-interval ” - Она должна сопровождаться числом, которое - число секунд; она устанавливает интервал засыпания между повторами (по умолчанию - 3).
“-lockfile ” - Созавать файл блокировки до открытия почтового ящика.
“-mbx ” - Блокировать почтовый ящик используя парвила MBX.
“-q ” - Убрать проверочный вывод.
“-retries ” - Она должна сопровождаться числом; оно устанавливает сколько бкдет предприниматься попыток установить блокировку (по умолчанию - 10).
“-restore_time ” - Эта опция заставляет “exim_lock ” восстанавливать время изменённения и время чтения блокированного файла до выхода. Это позволяет получить вам доступ к блокированному почтовому ящику (например, чтобы получить резервную копию) не изменяя время, которое впоследствии увилит пользователь.
“-timeout ” - Она должна сопровождаться числом, которое - число секунд; оно устанавливает таймаут который будет использоваться с блокировкой “fcntl() ”. Если она не установлена (по умолчанию), используются неблокирующие вызовы.
“-v ” - Генерировать подробный вывод.
Если не заданы “-fcntl ”, “-flock ”, “-lockfile ” или “-mbx ”, по умолчанию создаётся файл блокировки, и, также, на почтовом ящике используется блокировка “fcntl() ”, что делает и exim, по умолчанию. Использование “-flock ” и “-fcntl ” требует чтобы было право писать в файл; использование “-lockfile ” требует чтобы было право записи в директорию, содержащую файл. Блокировка путём файла не длится вечно; exim предполагает, что блокировка истекла, если он старее 30 минут.
Опция “-mbx ” может использоваться с одной, или обоими - “-fcntl ” или “-flock ”. По умолчанию, предполагается “-fcntl ”. Блокирока MBX вызывает отключение общей блокировки открытого почтового ящика, и эксклюзивную блокировку на файле “/tmp/.n.m ”, где “n ” и “m ” - номер устройства и номер иноды файла почтового ящика. Когда блокировка снята, если для почтового ящика может быть получена эксклюзивная блокировка, файл в “/tmp ” - удаляется.
Дефолтовый вывод содержит проверки имеющих место блокировок. Опция “-v ” вызывает выдачу некоторой дополнительной информации. Опция “-q ” подавляет весь вывод, исключая сообщения о ошибках.
Команда типа:
exim_lock /var/spool/mail/spqr
| запускает интерактивный шелл, когда файл заблокирован, тогда как:
exim_lock -q /var/spool/mail/spqr <<End
<some commands>
End
| запускает определённую неинтерактивную последовательность команд, когда файл заблокирован, подавляя весь проверочный вывод. Одна команда может быть запущена командой типа:
exim_lock -q /var/spool/mail/spqr \
"cp /var/spool/mail/spqr /some/where"
| Отметтьте, что если команда предоставлена, она должна полностью находиться во втором аргументе, следовательно - в кавычках.
=============
translated by lissyara
verifying by Gerk
Ссылка на обсуждение: http://forum.lissyara.su/viewforum.php?f=20.
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN
На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm
Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth"a
Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli
Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master
MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-09, terminus
DNS zones
Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)
Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4
Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3
Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2
Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
2010-03-01, BlackCat
Шлюз: Часть 1
Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat
Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
2010-01-23, gonzo111
squid+sams+sqstat
Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
2009-12-19, schizoid
mpd5 + radius + ng_car + Abills
Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
2009-11-16, lissyara
UFS->ZFS
Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
2009-11-13, gx_ua
fusefs-ntfs
Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
2009-11-12, Morty
LiveCD
Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
2009-09-27, lissyara
Samba как PDC
Контроллер домена - аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =)
2009-08-30, terminus
ipfw nat
Подробное руководство по ipfw nat, сложные случаи конфигурации.
2009-08-24, levantuev
HotSpot
Установка Hotspot системы в общественное заведение.
2009-08-18, lissyara
diskless
Создание бездисковых терминалов под управлением FreeBSD - с загрузкой по сети. Используются для старта rdesktop и подключения к виндовому серверу терминалов.
2009-07-29, BAV_Lug
Видеонаблюдение
Настройка бюджетного варианта видеонаблюдения на удаленном объекте
2009-07-22, Cancer
OpenLDAP адресная книга
Настройка и создание адресной книги на базе OpenLDAP + phpLDAPadmin
2009-06-30, SergeySL
AimSniff
Руководство по созданию системы мониторинга ICQ-переписки на базе AimSniff, использующей базу данных MySQL для хранения и Web-интерфейс WAS (Web Aim Sniff) для просмотра перехваченных сообщений
2009-06-25, atrium
Управление правами доступа
Полномочия пользователей и файлов, принадлежащих им, формирует концепцию ОС UNIX.
2009-06-16, DNK
Exim+PgSQL
Установка почтовой системы exim+pgsql на FreeBSD 7.1
2009-05-30, mvalery
HDD(mbr) -> HDD(gpt)
Как разбить диск размером более 2TB на разделы, сделать загрузочным, а затем перенести на него информацию с рабочей системы — донора.
2009-05-22, Cancer
SendXMPP
Отправка сообщений на Джаббер сервер по средствам SendXMPP
2009-05-11, Raven2000
Network UPS Tools
Network UPS Tools представляет собой набор программ, которые обеспечивают общий
интерфейс для мониторинга и администрирование UPS оборудования.
2009-04-29, m0ps
IPSEC over GRE with RIP
Пример IPSEC over GRE и динамическим роутингом (RIP), с ADSL в качестве последней мили на оборудовании Cisco.
2009-04-24, WhiteBear777
qemu network
Появилась необходимость поставить на БСД эмулятор(qemu) и настроить в качестве гостевой ОС Windows XP, предоставив ей выход в локалку и в сеть internet...
|