저는 CENTOS 5.x에서 Sendmail을 사용하고 있는데 이것이 간단한 문제였으면 좋겠습니다. =) 특정 DSN 코드를 트리거한 메시지에 대한 보고서 요약을 생성해야 합니다. 예를 들어:
Jan 11 07:43:34 server-example sendmail[12732]: p937blksdh3: to=<[email protected]>, 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
. 하지만 문제는 위와 같은 줄만 반환하고 메시지 보낸 사람을 알려주지 않는다는 것입니다.
이상적으로는 다음을 수행하는 한 줄의 코드를 찾고 있습니다.
- 특정 DSN에 대한 sendmail 메일 로그를 검색합니다.
- 이메일을 식별하는 메시지 ID입니다. (
awk '{print $}'
사용이 될 것 같은데요 ?) - 각 메시지에 대한 세부 정보를 반환합니다(2단계에서 검색된 메시지 ID에 대한 grep일 수도 있음).
답변1
배쉬에서
dsn=5.7.1
$ grep $dsn /var/log/maillog | awk '{print $6}' | awk -F: '{print $1}'
반품:
p937blksdh3
당신이 게시한 줄에 있는 메시지 ID인 것 같은데요?
글쎄, 그것은 스레드가 아닙니다. 그러면 grep
메시지 세부정보는 어디에 저장되나요?