메일이 도착했는지 확인하고, 도착하지 않으면 알림을 보냅니다.

메일이 도착했는지 확인하고, 도착하지 않으면 알림을 보냅니다.

나는 내 메일에 다양한 로그 메시지가 포함되어 있는 CentOS에서 메일 필터링을 위해 procmail과 함께 fetchmail을 사용하고 있습니다. 그들은 내 메시지(로그)에서 오류 문자열을 검색할 수 있도록 도와줍니다. 매일 나에게 전송되는 메일의 수가 고정되어 있고 서버가 충돌하면 메일을 보내지 않으므로 메일이 누락되었는지 확인하는 방법을 아는 사람이 있습니까? 메일이 누락되었는지 어떻게 확인할 수 있습니까? 이메일 알람을 통해 전송된다면?

procmail.logfetchmail을 사용하여 메일을 가져오고 procmail을 사용하여 메일을 처리할 때 특정 메일이 아직 도착하지 않았는지 확인하려면 파일을 살펴봐야 합니다 . 내 로그 파일은 다음과 같습니다.

From [email protected]  Wed Dec 31 10:38:49 2014
 Subject: example1 -> Incremental 1 -> DEV backup
  Folder: /dev/null                                                      235603
From [email protected]  Wed Dec 31 10:38:50 2014
 Subject: example2
  Folder: /dev/null                                                        5983
From [email protected]  Wed Dec 31 10:38:50 2014
 Subject: example3 -> Full Offline Backup DEV
  Folder: /dev/null                                                       40978
From [email protected]  Wed Dec 31 10:38:50 2014
 Subject: [OK] [ example4]
  Folder: /dev/null

따라서 이러한 메일은 하루 이내에 수신되며 각 메일이 도착했는지 확인해야 할 특정 시간에 도착해야 합니다(로그 파일에 있음). 이제 이러한 메시지가 로그에 있는지 확인하는 방법이 필요합니다. 그리고 from 행으로만 검색이 가능합니다.

답변1

일종의 주기적 로그 분석기를 실행하여 수신할 것으로 예상한 모든 항목을 수신하고 있는지 확인할 수 있습니다. 어쩌면 그럴 수도 있습니다.

awk 'BEGIN {
      e="[email protected]:[email protected]:[email protected]:[email protected]";
      split(e, expected, /:/) }
  /^From / { seen[$2]++ }
  END { for (x in expected) if (!(expected[x] in seen)) print expected[x] " missing" }
  ' Mail/procmail.log

조사하려는 기간(지난 24시간?)에 대한 로그가 있는지 확인하고 이를 이 스크립트에 전달하세요. "예상" 레코드 중 하나가 누락되면 경고합니다.

스크립트는 단순히 From각 로그 줄의 두 번째 필드를 찾아 추출합니다 . 마지막으로 에 없는 레코드가 seen있는 경우 각 레코드에 대해 경고 메시지가 표시됩니다.expectedseen

crontab스크립트가 출력을 생성하는 경우 이 명령을 실행하여 이메일을 받을 수 있습니다. 최신 로그 파일을 동시에(적어도 대략적으로) 보관하고 처리할 수 있도록 로그 순환 스크립트와 함께 이를 실행하는 것이 좋습니다. 그러면 타임스탬프 등을 확인하기 위해 로그 파일을 구문 분석할 필요가 없습니다. 이 로그 파일의 모든 내용은 관심 있는 기간의 것입니다.

답변2

www.smtpviewer.com을 확인하세요. 원하는 이메일 사본을 이 사이트로 보내면 일정 기간 내에 이메일을 받지 못한 경우 알림이 전송됩니다. 24시간마다 이메일을 받을 것으로 예상한다면 24시간을 가정하세요. 또한 이메일 제목이나 본문에 특정 키워드가 포함되어 있으면 경고할 수도 있습니다.

관련 정보