로그 파일의 특정 부분 필터링

로그 파일의 특정 부분 필터링

차단된 주소를 쉽게 추적할 수 있도록 메일 로그를 필터링하여 일일 보고서를 보내야 합니다.

이것은 로그의 일부입니다:

Oct  2 14:22:49 mail postfix/smtp/smtpd[3401121]: NOQUEUE: reject: RCPT from cloud831541.educacaa.com.br[45.140.41.93]: 554 5.7.1 Service unavailable; Client host [45.140.41.93] blocked using dnsbl.sorbs.net; Currently Sending Spam See: http://www.sorbs.net/lookup.shtml?45.140.41.93; from=<[email protected]> to=<leonardo@home-server> proto=ESMTP helo=<cloud831541.educacaa.com.br>
Oct  2 14:26:02 mail postfix/smtp/smtpd[3403329]: NOQUEUE: reject: RCPT from ws21763.adcote.com.br[185.249.200.83]: 554 5.7.1 Service unavailable; Helo command [ws217632.adcote.com.br] blocked using dbl.spamhaus.org; https://www.spamhaus.org/query/domain/adcote.com.br; from=<[email protected]> to=<leonardo@home-server> proto=ESMTP helo=<ws217632.adcote.com.br>
Oct  2 14:43:51 mail postfix/smtp/smtpd[3403329]: NOQUEUE: reject: RCPT from o12.mailer.shopify.com[149.72.90.155]: 554 5.7.1 Service unavailable; Client host [149.72.90.155] blocked using spam.dnsbl.sorbs.net; Spam Received See: http://www.sorbs.net/lookup.shtml?149.72.90.155; from=<bounces+12398229-c901-leonardo=home-server.net.br@mailer.shopifyemail.com> to=<leonardo@home-server> proto=ESMTP helo=<o12.mailer.shopify.com>

RCPT from"until" 과 "before" 를 :잘라서 "until " 에서 554 5.7.1인쇄 해야 합니다 .blocked using;Currently Sending

따라서 출력은 다음과 같습니다 =

RCPT from cloud831541.educacaa.com.br[45.140.41.93] -- blocked using dnsbl.sorbs.net

내 메일 필터에 의해 차단된 사람을 확인하는 더 쉬운 방법입니다.

도움을 주시면 감사하겠습니다.

답변1

아래의 긴 교체가 귀하의 요구 사항을 충족할 수 있는 것 같습니다 sed.

sed -n 's/.*\(RCPT from[^:]*\):.*554 5\.7\.1.*\(blocked using[^;]*\);.*Currently Sending.*/\1 -- \2/p' file

두 번 사용하려는 행의 두 비트를 캡처하여 말한 대로 수행됩니다 \(...\). 기본적으로 다양한 정적 문자열을 사용하여 정규식을 줄에 고정하고 비트가 일치하지 않으면 sed줄이 출력되지 않습니다. 표현식 [^:]*및 는 또는 를 포함하지 않는 [^;]*모든 하위 문자열(비어 있을 수 있음)과 일치하며 각각 하위 문자열과 일치합니다.:;.*

모든 식이 일치하면 전체 줄을 수집된 두 개의 하위 문자열과 이중 대시로 바꾼 다음 수정된 줄을 출력합니다.

질문의 데이터를 고려하면 결과는 하나의 행이 됩니다.

RCPT from cloud831541.educacaa.com.br[45.140.41.93] -- blocked using dnsbl.sorbs.net

관련 정보