qmailのqueue操作(確認→削除)
配送キューの(簡易)統計情報を確認
キューに溜まったままのメッセージがあるかを確認する。
# /var/qmail/bin/qmail-qstat messages in queue: 1 messages in queue but not yet preprocessed: 0
溜まったメッセージキューのヘッダを部分表示
キューを操作するために、メセージIDを調べる。
# /var/qmail/bin/qmail-qread 16 Nov 2011 00:00:00 GMT #30000 xxx <foo@example.com> remote bar@example.org
プロセスを停止
# svc -d /var/qmail/service/qmail # svstat /var/qmail/service/qmail /var/qmail/service/qmail: down 2 seconds, normally up # svc -d /var/qmail/service/smtp # svstat /var/qmail/service/smtp /var/qmail/service/smtp: down 2 seconds, normally up
キューに関連する3つのファイルを削除(キューに関連するファイルを手動で削除)
- 送信キュー
- 受信キュー
# cd /var/qmail/queue # find info -type f info/10/30000 # find mess -type f mess/10/30000 # find remote -type f remote/10/30000 # rm {info,mess,remote}/10/30000
NNに入る1〜20の数字を見つけなければいけないので、↑ではfindコマンドで検索して実行している。
プロセスを再開
# svc -u /var/qmail/service/qmail # svstat /var/qmail/service/sqmail /var/qmail/service/qmail: up (pid xxx) 1 seconds # svc -u /var/qmail/service/smtp # svstat /var/qmail/service/smtp /var/qmail/service/smtp: up (pid xxx) 1 seconds
配送キューの(簡易)統計情報を確認する。
キューに溜まったままのメッセージがないことを確認して終了。
# /var/qmail/bin/qmail-qstat messages in queue: 0 messages in queue but not yet preprocessed: 0
ここまで手動で実行する手間を考えると、「qmHandle」はすごく便利でした。
qmHandleをインストール
# wget http://downloads.sourceforge.net/project/qmhandle/qmhandle-1.3/qmhandle-1.3.2/qmhandle-1.3.2.tar.gz # tar xzvf qmhandle-1.3.2.tar.gz # cd qmhandle-1.3.2 # cp qmHandle /usr/local/bin/ # vi /usr/local/bin/qmHandle 29,30c29,30 < my ($stopqmail) = '/usr/local/bin/svc -d /service/qmail-deliver'; < my ($startqmail) = '/usr/local/bin/svc -u /service/qmail-deliver'; --- > my ($stopqmail) = '/usr/local/bin/svc -d /var/service/qmail'; > my ($startqmail) = '/usr/local/bin/svc -u /var/service/qmail'; /usr/local/bin/svc -u /var/service/qmail
メッセージ番号を取得
# qmHandle -l
メッセージ番号「xxx」を確認して削除
# qmHandle -mxxx # qmHandle -dxxx