drweb-qcontrol: Управление Карантином

Утилита drweb-qcontrol предназначена для управления Карантином и осуществления поиска в нем писем. Интерфейс запуска утилиты в большинстве случаев не зависит от того, где хранятся письма в файлах (в каталогах хранилища на диске или в хранилище DBI).

Если Карантин хранится в каталогах, то для работы утилиты с ним требуется, чтобы модуль drweb-maild был предварительно запущен.

Формат запуска утилиты:

drweb-qcontrol [параметры] команда [, команда, ...] <идентификаторы>

1. Параметры командной строки

Доступны следующие параметры командной строки:

Краткий вариант

Расширенный вариант

Аргументы

-h

--help

 

Описание: Вывод на консоль краткой справки по параметрам командной строки и завершение работы утилиты

 

 

--version

 

Описание: Вывод на консоль информации о версии и завершение работы утилиты

 

-v

--verbose

 

Описание: Предписание выводить на консоль всю информацию о действиях, совершаемых утилитой в процессе работы

 

-l

--level

<уровень подробности>

Описание: Установка уровня подробности записи в журнал. Возможные значения: Quiet, Error, Alert, Info, Debug

 

-i

--ipc-level

<уровень подробности>

Описание: Установка уровня подробности записи в журнал для подсистемы IPC (взаимодействие с модулем drweb-maild). Возможные значения: Quiet, Error, Alert, Info, Debug

 

 

--syslogfacility

<метка syslog>

Описание: Установка типа подсистемы, через которую системный сервис syslog (если журналирование работы утилиты ведется через него, см. следующий параметр) выдает сообщения о событиях. Возможные значения: Daemon, Mail, Local0, ..., Local7

 

 

--log-filename

<имя файла>

Описание: Установка имени файла журнала или значение syslog, если журналирование работы утилиты должно осуществляться с помощью системного сервиса syslog

 

 

--sendmail

<путь к файлу>

Описание: Установка пути к исполняемому файлу утилиты отправки писем drweb-inject (по умолчанию, если параметр не задан, используется путь %bin_dir%/drweb-inject)

 

-s

--socket

<путь к файлу>

Описание: Установка пути к управляющему сокету Dr.Web MailD (по умолчанию, если параметр не задан, используется путь %var_dir%/ipc/.ctl)

 

 

--agent

<путь к файлу>

Описание: Установка пути к сокету компонента Dr.Web Agent для получения от него конфигурационной информации (по умолчанию, если параметр не задан, используется путь %var_dir%/ipc/.agent). Если указать ключ без параметра, обращение к Dr.Web Agent производиться не будет

 

 

--timeout

<период времени>

Описание: Установка максимального допустимого времени ожидания ответа от Dr.Web Agent при получении конфигурации

2. Команды

Команды опеределяют, какие действия следует выполнить с письмами, выбранными из Карантина по указанным условиям. Список писем, над которыми выполняются действия, определяется через уникальные идентификаторы, в качествое которых используются относительные пути файлов писем, сохраненных в Карантине. При задании этих идентификаторов можно использовать специальные символы шаблонов:

"%" – соответствует последовательности из нуля или более произвольных символов;

"_" – соответствует ровно одному произвольному символу.

Обратите внимание, что в начале любого идентификатора необходимо указать префикс def/.

Пример:

def/%00014F7F% - все сообщения, помещенные в Карантин, номер которых содержит внутри себя последовательность цифр 00014F7F, или совпадает с ней;

def/drweb/% - все сообщения, помещенные в Карантин подключаемым модулем Drweb.

Идентификаторы файлов, над которыми требуется выполнить операции, берутся из командной строки или из указанных при запуске условий поиска (см. ниже) (при этом, если одновременно указаны условия поиска и непосредственно идентификаторы писем в командной строке, то они объединяются). Eсли не было указано ни одного условия поиска, и в командной строке не было указано ни одного идентификатора писем, то ожидается ввод идентификатора со стандартного потока ввода.

Возможные команды:

--view - просмотреть содержимое писем с заданными идентификаторами при помощи утилиты, указанной в переменной окружения PAGER. Если в переменной окружения PAGER не указано значение, то по умолчанию используется утилита cat.

--send - отправить все письма с заданными идентификаторами оригинальным получателям. Для отправления используется утилита drweb-inject.

--redirect [list_of_rcpts] - переслать все письма с заданными идентификаторами на адреса из заданного списка list_of_rcpts. Для отправления используется утилита drweb-inject.

--remove - удалить все письма с заданными идентификаторами из Карантина.

--stat - вывод статистической информации о найденных в Карантине сообщениях с заданными идентификаторами.

Пример:

drweb-qcontrol --stat def/%
1. def/backup/B/00014F8B.DW_SHOT_PRODUCT.U0dshM  from: ai@1; to: ai@fff; time: 2008-08-14 12:10:57
2. def/drweb/F/00014F8F.DW_SHOT_PRODUCT.QqFpdH  from: ai@4; to: ai@fff; time: 2008-08-14 13:00:50
3. def/backup/C/00014F8C.DW_SHOT_PRODUCT.A39xp7  from: ai@2; to: ai@fff; time: 2008-08-14 13:00:50
4. def/backup/F/00014F8F.DW_SHOT_PRODUCT.tMi6W2  from: ai@4; to: ai@fff; time: 2008-08-14 13:00:50
5. def/drweb/3/00014F93.DW_SHOT_PRODUCT.n9xPjU  from: ai@3; to: ai@fff; time: 2008-08-14 13:30:49
6. def/backup/3/00014F93.DW_SHOT_PRODUCT.ewYFVA  from: ai@3; to: ai@fff; time: 2008-08-14 13:30:49
7. def/backup/4/00014F94.DW_SHOT_PRODUCT.JQ3sLH  from: ai@3; to: ai@fff; time: 2008-08-14 13:30:49

Действия будут выполняться именно в том порядке, в котором они описаны. Т.е. в одной команде можно указывать сразу несколько действий.

Пример:

drweb-qcontrol --send --remove def/backup/F/00014F7F.DW_SHOT_PRODUCT.yv4ro9

отправит письмо с идентификатором def/backup/F/00014F7F.DW_SHOT_PRODUCT.yv4ro9 оригинальным получателям, а затем удалит его из Карантина.

Если программный комплекс настроен на хранение Карантина в хранилище DBI, то для выполнения удаления писем дополнительно потребуется указание в командной строке SQL-команды удаления. Для этого используется дополнительная команда:

--sql-remove-command - команда удаления письма из Карантина по его файловому идентификатору. Единственным параметром тут является файловый идентификатор письма.

Пример:

drweb-qcontrol --sql-remove-command "DELETE FROM mail_export WHERE filename LIKE ?"

3. Поиск писем

Утилита drweb-qcontrol предоставляет также простой интерфейс для поиска в письмах, помещенных в Карантин. Доступные критерии поиска:

--search-from {адрес} - поиск по отправителю в конверте письма;

--search-to {адрес} - поиск по получателю в конверте письма;

--search-headers {header_name[:value]} - поиск в заголовках верхнего уровня письма.

Здесь header_name – имя искомого заголовка (допускается только полное соответствие). Если value не указано, то для совпадения достаточно одного факта присутствия этого заголовка. Если указано value, то оно ищется в значении данного заголовка как подстрока. Поиск имени заголовка и его значения является регистронезависимым;

--search-inbody {строка} - осуществляет поиск заданных подстрок в теле сообщения. Тело сообщения воспринимается как единое целое, и не осуществляется никакого MIME-декодирования. Поиск является регистронезависимым.

Обратите внимание, что если в качестве аргументов для параметров --search-headers и --search-inbody указываются спецсимволы *, ^, $, то их необходимо экранировать символом "\".

Пример:

drweb-qcontrol --search-inbody \* --stat

Вывод статистики по письмам, найденным по заданным условиям поиска в теле.

Каждый из указанных критериев поиска проверяется независимо, т.е. они объединяются по принципу OR.

Пример:

drweb-qcontrol --search-to addr1 --search-to addr2

будет искать письма, в конверте которых среди получателей есть либо addr1, либо addr2.

Пример:

drweb-qcontrol --search-from from@drweb.com --search-to to@drweb.com —search-headers "Subject: [SPAM]" --search-inbody "spam"

найдет все письма в Карантине, отправителем которых является from@drweb.com, или получателем которых является to@drweb.com, или в теме которых есть строка [SPAM], или в теле которых есть слово spam.

Обратите внимание, что если в параметрах утилиты одновременно указаны какой-либо критерий поиска и список файловых идентификаторов, то поиск будет производиться исключительно в списке файлов из командной строки (происходит пересечение подмножеств по принципу AND).

Пример:

drweb-qcontrol --stat --search-from ai@5 def/backup/%

выводит на консоль статистику обо всех заархивированных сообщениях (имеющих идентификатор, отвечающий указанному шаблону def/backup/%), отправителем которых является ai@5:

1. def/backup/5/00014F95.DW_SHOT_PRODUCT.1LXzg1 from: ai@5; to: to@drweb.com; time: 2008-8-14 15:1:46