2007年08月27日
今朝のメールチェックでinboxにspamが多い事に気づく。
原因調査と対応の記録。
■原因調査
▼SpamAssassinの動作確認
SpamAssassinのログを調査してみたらrecoveryのメッセージ。
1. spamdが反応しない
↓
2. spam判定をスルーしてしまう
↓
3. inboxへメールが入り込む
こう言う経緯。
▼『spamdは起動している?』
起動している
▼対応優先順位付け
・じっくり原因調査
・一刻も早く復旧
業務に影響が出るので、1秒でも早い復旧を選択。
『spamdを再起動してみて、もしも駄目だったら次を考えよう。』
そう思い、再起動。
無事、起動して来た。
その後の動作に問題ない。
■メール再判定
inboxに紛れ込んでしまっている。spamが邪魔。
どうにかしたい。さてどうする?
▼対応手順
1. inboxに入っているファイルリスト取得
2. spamcコマンドに-cオプションを付けて実行
3. spam判定された場合、sandboxへ移動
spamcに-cオプションを追加する事で、
終了ステータスコードを利用出来る。
▼spamc -cの終了ステータスコード
▼実行例
▼何故直接spamフォルダへ移動せず、sandboxへ移動するのか
それは、spamフォルダに同ファイル名が存在するケースを避ける為。
一度sandboxへ移動し、sandboxに入ったメールを改めてspamへ移動。
これでファイルが上書きされる事も無く、順番通りにメールが並ぶ。
■独り言
何事も経験
原因調査と対応の記録。
■原因調査
▼SpamAssassinの動作確認
SpamAssassinのログを調査してみたらrecoveryのメッセージ。
$ tai64nlocal< /service/spamd-ro/log/main/$(tai64nlocal).s | lv
2007-08-27 04:40:28.563005500 [8096] warn: prefork: select returned -1! recovering: Bad file descriptor
2007-08-27 04:40:29.791522500 [8096] warn: prefork: select returned -1! recovering: Bad file descriptor
2007-08-27 04:40:30.793415500 [8096] warn: prefork: select returned -1! recovering: Bad file descriptor
2007-08-27 04:40:31.795259500 [8096] warn: prefork: select returned -1! recovering: Bad file descriptor
2007-08-27 04:40:32.797110500 [8096] warn: prefork: select returned -1! recovering: Bad file descriptor
2007-08-27 04:40:28.563005500 [8096] warn: prefork: select returned -1! recovering: Bad file descriptor
2007-08-27 04:40:29.791522500 [8096] warn: prefork: select returned -1! recovering: Bad file descriptor
2007-08-27 04:40:30.793415500 [8096] warn: prefork: select returned -1! recovering: Bad file descriptor
2007-08-27 04:40:31.795259500 [8096] warn: prefork: select returned -1! recovering: Bad file descriptor
2007-08-27 04:40:32.797110500 [8096] warn: prefork: select returned -1! recovering: Bad file descriptor
1. spamdが反応しない
↓
2. spam判定をスルーしてしまう
↓
3. inboxへメールが入り込む
こう言う経緯。
▼『spamdは起動している?』
$ sudo svstat /service/spamd-ro
/service/spamd-ro: up (pid $(pid)) $(time) seconds
/service/spamd-ro: up (pid $(pid)) $(time) seconds
起動している
▼対応優先順位付け
・じっくり原因調査
・一刻も早く復旧
業務に影響が出るので、1秒でも早い復旧を選択。
『spamdを再起動してみて、もしも駄目だったら次を考えよう。』
そう思い、再起動。
$ sudo svc -t /service/spamd-ro
$ sudo svstat /service/spamd-ro
$ sudo svstat /service/spamd-ro
無事、起動して来た。
その後の動作に問題ない。
■メール再判定
inboxに紛れ込んでしまっている。spamが邪魔。
どうにかしたい。さてどうする?
▼対応手順
1. inboxに入っているファイルリスト取得
2. spamcコマンドに-cオプションを付けて実行
3. spam判定された場合、sandboxへ移動
spamcに-cオプションを追加する事で、
終了ステータスコードを利用出来る。
▼spamc -cの終了ステータスコード
$? = 0: ham
$? !=0: spam
$? !=0: spam
▼実行例
$ cd $(HOME)/Mail/inbox
$ mkdir sandbox
$ for i in *; do spamc -c $i || mv $i ./sandbox/; done
$ mkdir sandbox
$ for i in *; do spamc -c $i || mv $i ./sandbox/; done
▼何故直接spamフォルダへ移動せず、sandboxへ移動するのか
それは、spamフォルダに同ファイル名が存在するケースを避ける為。
一度sandboxへ移動し、sandboxに入ったメールを改めてspamへ移動。
これでファイルが上書きされる事も無く、順番通りにメールが並ぶ。
■独り言
何事も経験