bounceHammer has been EOL'ed on February 29, 2016

製品ライフサイクルの終了

2010年3月にオープンソースソフトウェアとして公開して以来、多くのユーザ様・企業様にダウンロードし、 ご利用いただきましたbounceHammerは、2016年2月29日(月)を持ちまして製品ライフサイクルの終了(EOL: End Of Life) となりました。長きにわたりbounceHammerをご使用いただき誠に有り難う御座いました。 開発元では後継となるバウンスメール解析ライブラリとして、より高精度で高速なSisimai(シシマイ) を二条項BSDライセンスで公開しています。

14. 定期的に動かす(crontab)

 

crontabによる定期的な実行

処理の流れのように、 bounceHammerがバウンスメールを解析し、それを集積し、 データベースへ登録・蓄積されているデータを更新する流れを自動化するには、 crontabbounceHammerのいくつかのコマンドラインツールを 定期的に呼び出すとよいでしょう。

bounceHammerをインストールすると、 インストールしたディレクトリ/etc/crontab-example という名前でcrontabの簡単なサンプルが置かれます。

crontabを設定する

多くのシステムでは/etc/crontabですが、 そのファイルがない場合は、rootでcrontab -e を実行してください。

宛先から戻ってきたバウンスメールは、/etc/mail/aliases 等で /var/mail/bouncemail/home/postmaster/Maildir/newに保存されている ものとします。

rootでcrontabを編集
# crontab -e
# bounceHammer PARSE | UPDATE | INSERT
BHROOT = '/usr/local/bouncehammer'
BMBOX = '/var/mail/bouncemail'
BMDIR = '/home/postmaster/Maildir/new'

# 10分毎に解析を実行する
0-59/10 * * * * ${BHROOT}/bin/mailboxparser -g --log ${BMBOX} --remove
0-59/10 * * * * ${BHROOT}/bin/mailboxparser -g --log ${BMDIR} --remove

# 15分ごとに集積する
0-59/15 * * * * ${BHROOT}/bin/logger -c --remove

# 毎時0分、当日分のログをデータベースに記録
00 * * * * ${BHROOT}/bin/databasectl --update --today

# 早朝3時、昨日分のログをデータベースに記録
00 03 * * * ${BHROOT}/bin/databasectl --update --yesterday

解析を実行したりデータベースに記録したりするタイミングや間隔は、 インストールしたbounceHammerが処理する量(バウンスの発生量) やサーバの環境・スペックに合わせて適当に調整してください。

/etc/crontabに大量に記述する事が困難であればシェルスクリプトを書いても 良いでしょう。

bounceHammerによる解析処理と集積・蓄積については、 crontabに記述をしておけばあとはバウンスメールが来る度に自動で処理されます。