고급 procmail 레시피

고급 procmail 레시피

기본을 조금 넘어서는 하나 이상의 procmail 규칙을 작성해야 합니다. Bacula가 설치되어 있고 제목 시작 부분에 있는 모든 메시지를 폴더라는 폴더로 Bacula: Backup OK for이동 하고 싶습니다 backups. 이것은 좋은 백업이므로 정기적으로 읽을 필요는 없지만 후손을 위해 보관하고 싶습니다. 물론 쉽습니다.

이제 더 어려운 부분이 다가옵니다. 백업이 실제로 실행 중인지(스레드에서 실패하지 않는지) 알아야 하며 , 폴더의 읽지 않은 메일 수가 매일 증가하는지 ERROR확인하는 것에 대해 자신이 없습니다 . backups그래서 몇 가지 다른 옵션을 보았습니다.

  1. 특정 "확인" 메시지가 내 받은 편지함으로 전송되도록 허용합니다. 예를 들어 Bacula: Backup OK for FOO내 받은 편지함으로 이동합니다. (이상적으로 는 후손을 위해 사본을 보관하면서 backups받은 편지함에서 사본을 삭제할 수도 있습니다 .) backups동시에 Bacula: Backup OK for BAR( FOO이미 언급한 것 이외의 모든 것) 항상 들어오고 backups내 받은 편지함을 방해하지 않습니다.
  2. 마지막으로 성공한 백업의 날짜/시간을 추적하고 24시간 이상 새 메일 메시지가 삽입되지 않으면 문제를 경고하는 도우미 스크립트를 사용하여 더욱 스마트해집니다.
  3. 또는 나쁜 일이 일어나기 때문에 위의 두 가지 모두 극도의 편집증/현실주의자에게 적용됩니다. :-)

답변1

저는 개인적으로 #2에 집중하고 싶습니다. 복잡할 필요는 없지만 솔루션을 필요에 맞게 맞춤화해야 할 수도 있습니다. maildir 형식의 호스트 목록과 폴더가 있다고 가정하면 비슷한 방식으로 최근 메시지를 볼 수 있습니다.

find $HOME/path/to/folder/backups -mtime 0 -print0 |
xargs -r0 awk '/^Subject: Bacula: Backup OK for / { a[$6] = FILENAME }
    END { split("FOO:BAR:BAZ:QUUX", t, /:/);
        for (h in t) host[t[h]]++;
        for (h in a) delete host[h];
        for (h in host) print "No backup for " host[h] }'

이 스크립트는 뭔가 누락된 경우에만 보고서를 보내는 점이 마음에 들지만, 그러면 작업이 최근에 실행되었는지 확인해야 하는 새로운 문제가 발생합니다. 어쩌면 항상 무언가를 인쇄하고 "완료" 메시지를 다른 폴더로 필터링하거나 감시 스크립트를 추가하여 이를 모니터링해야 할 수도 있습니다. (농담일 뿐입니다. 핵심은 추상화입니다. 결국 다른 모든 모니터링 스크립트를 모니터링하는 하나의 모니터링 스크립트만 있으면 자신을 사전에 모니터링하는 데 필요한 전부가 됩니다.)

관련 정보