LINUX.ORG.RU

Подскажите скрипт для работы с почтовыми логами

 , , , ,


0

1

Подскажите скрипт для работы с почтовыми логами postfix.
Есть сервер, выполняющий роль почтового релея. Допустим нужно посмотреть по логам все отправки, которые были совершены с определённого email, например mail@domain.ltd. Я грепаю по этому email лог qmgr:

journalctl --no-pager -t postfix/qmgr | grep mail@domain.ltd
Теперь нужно вычленить из вывода идентификаторы писем (E3E0CEB91D, 22832F4978, E3E0CEB91D), они будут в шестом в выводе и заканчиваться двоеточием и скормить их без двоеточий грепу по выводу команды:
journalctl --no-pager -t postfix/smtp

Ответ на: комментарий от legolegs

Что-то вроде:

дек 31 14:34:33 iskatel-aws postfix/qmgr[3770]: 51FC3840CEE: from=<*****@****************>, size=3291, nrcpt=1 (queue active)
дек 31 15:36:43 iskatel-aws postfix/qmgr[3770]: 213DB840CEE: from=<*****@****************>, size=3291, nrcpt=1 (queue active)
Собственно идентификаторы это 51FC3840CEE, 213DB840CEE

sunny1983 ★★★★ ()
Ответ на: комментарий от sunny1983

дек 31 14:34:33 iskatel-aws postfix/qmgr[3770]: 51FC3840CEE: from=<*****@****************>, size=3291, nrcpt=1 (queue active)
дек 31 15:36:43 iskatel-aws postfix/qmgr[3770]: 213DB840CEE: from=<*****@****************>, size=3291, nrcpt=1 (queue active)

sed 's/.* iskatel-aws postfix.qmgr.*: \([0-9A-F]\+\): from=.*/\1/'

Годится?

Или

sed 's/... [0-9]\{1,2\} [0-9]\{1,2\}:[0-9]\{2\}:[0-9]\{2\} iskatel-aws postfix.qmgr\[[0-9]*\]*: \([0-9A-F]*\): from=.*/\1/'
если формат даты и времени не будет меняться.

question4 ★★★★★ ()
Ответ на: комментарий от sunny1983

Нет ничего проще:

$ awk -F': ' '{print $2}' < sunny1983.txt 
51FC3840CEE
213DB840CEE

Можно заодно и адрес проверять:

$ awk -F': ' '$3~/mail@domain.ltd/ {print $2}' < sunny1983.txt 
DEAD111BEEF

Ну и в итоге можно делать всё, описанное в топике одной командой:

journalctl --no-pager -t postfix/smtp | 
    grep -F -f <(
        journalctl --no-pager -t postfix/smtp |
            awk -F': ' '$3~/mail@domain.ltd/ {print $2}'
    )
legolegs ★★★★★ ()