Nowe posty

Autor Wątek: Wyciągnięcie danych z logów  (Przeczytany 260 razy)

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 21
    • Zobacz profil
Wyciągnięcie danych z logów
« dnia: 2020-01-13, 09:52:43 »
Witam,
chciałbym wyciągnąć z loga tą co mnie interesuje, ale nie wiem, jak to do końca zrobić...
Mam coś takiego:

Jan 13 09:43:22 mail postfix/smtp[14257]: 0553B10185F: to=<zzz.yyy@tioi.com.pl>, relay=mail.tioi.com.pl[91.245.28.22]:25, delay=53, delays=0.04/0/0.14/53, dsn=2.0.0, status=sent (250 OK id=1iqvJi-0005Bc-LM)

A interesuje mnie taki efekt:
<zzz.yyy@tioi.com.pl> status=sent (250 OK id=1iqvJi-0005Bc-LM)

Znalazłęm coś takiego, ale nie wie, jak dodać drugą cześć...
tail -f /var/log/mail.info | grep to= | awk '{print $7}'
to=<zzz.yyy@tioi.com.pl>

Z góry dzięki za pomoc. :)

beaker

  • Gość
Odp: Wyciągnięcie danych z logów
« Odpowiedź #1 dnia: 2020-01-13, 10:01:54 »
awk '{print $7, $12}'

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 21
    • Zobacz profil
Odp: Wyciągnięcie danych z logów
« Odpowiedź #2 dnia: 2020-01-13, 10:49:34 »
Super jest już prawie extra. Działa fajnie, ale jak zrobić, aby tylko były te 2 rzeczy ?
Czyli to=<ccc@yyy.pl>, status=sent


to=<ccc@yyy.pl>, status=sent
removed
sender
from=<>,
removed
from

beaker

  • Gość
Odp: Wyciągnięcie danych z logów
« Odpowiedź #3 dnia: 2020-01-13, 11:13:20 »
Powinieneś mieć już tylko te dwie rzeczy.
Pokaż kształt obecnej komendy, przykładową linijkę i wynik operacji na tej linijce.

Szklana kula podpowiada jeszcze użycie kolejnego grep aby łapać tylko linijki z status=sent, przykładowo grep to= | grep =sent
« Ostatnia zmiana: 2020-01-13, 11:29:39 wysłana przez arecki »

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 21
    • Zobacz profil
Odp: Wyciągnięcie danych z logów
« Odpowiedź #4 dnia: 2020-01-13, 11:21:26 »
root@mail:~# cat /var/log/mail.info | grep to= | awk '{print $7,$13}' | head -n 5
reject: <spameri@tiscali.it>:
reject: <spameri@tiscali.it>:
to=<xxx@bbb.pl>, status=sent
reject: <spameri@tiscali.it>:
to=<xxx@bbb.pl>, status=sent

root@mail:~# cat /var/log/mail.info | awk '{print $7,$14}' | head -n 5
from
connection
from
max Jan
max Jan

Logi, które lecą mają nie raz inne linijki, ale słowa kluczowe są te same.

beaker

  • Gość
Odp: Wyciągnięcie danych z logów
« Odpowiedź #5 dnia: 2020-01-13, 11:28:38 »
Użyj kolejnego grep jak podałem w przykładzie.