Intereting Posts
Как добавить параметры загрузки в arch linux * Совместимость с исполняемым файлом nix Использование autofs для монтирования под домашним каталогом каждого пользователя i3wm: запуск приложений без атрибута класса на определенных рабочих пространствах Установка гостевых дополнений VirtualBox на сервере Ubuntu 10.04 Расширение Linux-терминала Программа Коллекции программного обеспечения RH позволяют запускать команды с помощью sudo Как отобразить man-страницу с groff в / на msysgit? Черный экран, когда я перехожу от X сеанса к сеансу tty RHEL 7 (CentOS 7) security / ssh / sshd_config рекомендует Linux Mint 18: моя Dell Precision 5520 перезагружается от приостановки, а не просыпается Какую архитектуру Debian я должен использовать? AMD Sempron 2500 Как использовать новую таблицу fdisk без перезагрузки (kpartx)? Где найти историю передачи файлов от клиента SSH (Debian / Linux)? Как работает процесс установки linux

Как создать сводку отчетов о сообщениях, которые вызвали конкретный код DSN

Я использую Sendmail на CENTOS 5.x, я надеюсь, что это простой вопрос. =) Мне нужно создать сводку отчетов о сообщениях, которые вызвали конкретный код DSN. Например:

Jan 11 07:43:34 server-example sendmail[12732]: p937blksdh3: to=<someuser@recipientdomain.com>, delay=00:00:00, xdelay=00:00:00, mailer=esmtp, pri=102537, relay=mta.recipientdomain.com. [12.34.56.78], dsn=5.7.1, stat=Service unavailable 

Как правило, я бы просто grep для этой информации (что-то вроде: grep -i "dsn=5.7.1" /var/log/maillog ). Но проблема в том, что это возвращает строку, как указано выше, и не сообщает мне отправителя сообщения.

В идеале, я ищу один лайнер, который может сделать следующее:

  1. Поиск sendmail maillog для конкретного DSN.
  2. Определите идентификатор сообщения для электронной почты. (Я предполагаю, что awk '{print $}' будет использоваться?)
  3. Верните данные сообщения для каждого (предположительно grepping для идентификатора сообщения, полученного с шага 2).

Я n00b на сценариях / однострочных, поэтому я уверен, что, возможно, есть более простой способ сделать это. Есть предположения?

В bash

 dsn=5.7.1 $ grep $dsn /var/log/maillog | awk '{print $6}' | awk -F: '{print $1}' 

возвращает:

 p937blksdh3 

Из строки, которую вы опубликовали, я предполагаю, что это идентификатор сообщения?

Хорошо, это не одна строка. Затем grep для этого для деталей сообщения, где хранятся данные сообщения?