POSTSUPER(1) POSTSUPER(1) 名前 postsuper - Postfix 監督プログラム 書式 postsuper [-psv] [-c config_dir] [-d queue_id] [-h queue_id] [-H queue_id] [-r queue_id] [directory ...] 解説 postsuper(1) コマンドは Postfix キューのメンテナンスの仕事をおこないま す。コマンドの使用はスーパーユーザに限られます。メールキューの リ ス ト アッ プ や フ ラッ シュ の よ う に、権限の必要ないキュー操作については postqueue(1) コマンドを参照してください。 デフォルトでは、postsuper(1) はコマンドラインオプションの -s と -p によ り 要求される処理を全ての Postfix キューディレクトリでおこないます - こ れは incoming や active、deferred ディレクトリのメールファイルと bounce や defer、trace、flush ディレクトリのログファイルを含みます。 オプション: -c config_dir デフォルトの設定ディレクトリの代わりに、指定されたディレクトリに main.cf 設定ファイルがあります。以下の MAIL_CONFIG 環境変数設 定 も参照してください。 -d queue_id 指定されたキュー ID の一つのメッセージを指定されたメールキューか ら削除します (デフォルト: hold お よ び incoming 、active 、 deferred)。 - という queue_id が指定されると、プログラムは標準入 力からキュー ID を読みます。例えば、ちょうど user@example.com だけ で ある全てのメールを削除するには、次のようにします: mailq | tail +2 | grep -v '^ *(' | awk 'BEGIN { RS # $7=sender, $8=recipient1, $9=recipient2 { if ($8 == "user@example.com" && $9 == "") print $1 } ' | tr -d '*!' | postsuper -d - 全 て の メ ッ セ ージを削除するには -d ALL を指定します; 例えば deferred キューの全てのメールを削除するには -d ALL deferred を指 定 します。安全対策として、単語 ALL は大文字で指定しなければいけ ません。 警告: Postfix キュー ID は再利用されます。 Postfix メールシス テ ム がメールを配送している間に postsuper が実行されて間違ったメッ セージを削除してしまう可能性が非常にわずかにあります。 状況は次の通りです: 1) Postfix がメッセージの処理を終えたため (配送された、も し く は 送 信者に返された)、postsuper(1) が削除を要求された メッセージを Postfix キューマネージャが削除します。 2) 新しいメールが到着し、新しいメッセージに postsuper(1) が 削 除 し ようとするメッセージと同じキュー ID が与えられま す。この削除したキュー ID を再利用する可能性は 2**15 回に 1 回の確率です (システムクロックが1秒以内に区別できる、異 なるマイクロ秒の値)。 3) postsuper(1) は削除すべき古いメッセージの代わりに新 し い メッセージを削除します。 -h queue_id 配 送するための試行がなされないようにするために、メールを "hold" します。指定されたキュー ID を持つメッセージを、指定されたメール キ ュー (デフォルト: incoming および active、deferred) から hold キューに移動します。 - という queue_id が指定されると、プログラムはキュー ID を標準入 力から読みます。 全 て の メッ セー ジを hold するには、-h ALL を指定します; 例え ば、deferred にあるメールを hold するには、 -h ALL deferred を指 定します。安全対策として、ALL という単語は大文字で指定しなければ いけません。 注意: メールが "hold" にある間は、キューに あ る 時 間 が maxi- mal_queue_lifetime や bounce_queue_lifetime の設定を超えても期限 切れにはなりません。"hold" から解放されると期限による支配を受 け ます。 -H queue_id "hold" に置かれたメールを解放します。指定されたキュー ID を持つ 一つのメッセージを、指定されたメールキュー(デフォルト: hold) か ら deferred キューに移します。 - という queue_id が指定されると、プログラムはキュー ID を標準入 力から読み込みます。 注意: $maximal_queue_lifetime や $bounce_queue_lifetime のかなり の割合、もしくはそれ以上の間 hold に留め置かれたメールを解放する には "postsuper -r" を使ってください。 "hold" にある全てのメールを解放するには、-H ALL を指定します。安 全対策として、ALL という単語は大文字で指定しなければいけません。 -p システムやソフトウェアがクラッシュしたときに残された古いテンポラ リファイルをきれいにします。 -r queue_id 指定されたキュー ID のメッセージを指定されたメールキュー (デフォ ルト: incoming や active、deferred) から再びキューに入れます。複 数のメッセージを再びキューに入れるには、複数の -r コマンドライン オプションを指定します。 代わりに - が queue_id として指定されると、プログラムはキュー ID を標準入力から読みます。 全てのメッセージを再びキューに入れるには -r ALL を指定します。安 全対策として、単語 ALL は大文字で指定しなければいけません。 要求されたメッセージは、新しいキューファイルの inode 番号に マッ チ す ることが保証された名前に pickup デーモンがコピーした場所か ら、 maildrop キューに移されます。新しいキューファイルは再びメー ルアドレスの書換えや置換を受けます。これは書換えルールや virtual マッピングが変更された時に便利です。 警告: Postfix キュー ID は再利用されます。 Postfix メールシス テ ムが動いている間に postsuper(1) が実行されて間違ったメッセージ を再びキューに入れてしまう可能性が非常にわずかにありますが、被害 はありません。 -s 構造チェックと構造の修復。Postfix が立ち上がる前に、一度このチェ ックを走らせるべきです。 o メッセージファイルの inode 番号にマッチしない名前のファイ ル 名を変えます。この操作は他のマシンやバックアップメディ アからメールキューをリストアした後で必要です。 o ファイルシステム構造の間違った場所にあるキューファイル を 移 動し、使われていない差部ディレクトリを削除します。ファ イルの場所の再配置は hash_queue_names や hash_queue_depth 設定パラメータの変更後に必要です。 -v デバッグ目的の冗長モードを使用します。複数の -v オプションを指定 すると、ソフトウェアの冗長度が増します。 診断 問題は標準エラーストリームと syslogd(8) に報告されます。 postsuper(1) は -d で削除されたメッセージの数や -r で再びキューに入れら れたメッセージの数、-s でキューファイル名が修正されたメッセージの数を報 告します。レポートは標準エラー出力ストリームと syslogd(8) に書 か れ ま す。 環境変数 MAIL_CONFIG main.cf ファイルがあるディレクトリ。 バグ Postfix によってサニタイズされなかったメール (つまり maildrop にある メ ール) は "hold" に置くことができません。 設定パラメータ 以下の main.cf パラメータは特にこのプログラムに関連があります。以下の文 章はパラメータの概要のみを提供します。例を含む詳細は postconf(5) を参照 してください。 config_directory ('postconf -d' の出力を参照) Postfix main.cf および master.cf 設定ファイルのデフォルトの場所 。 hash_queue_depth (1) hash_queue_names パラメータにリストアップされたキューディレク ト リの、サブディレクトリレベル数。 hash_queue_names (deferred, defer) 複数のサブディレクトリレベルにわたって分割されたキューディレクト リの名前。 queue_directory ('postconf -d' の出力を参照) Postfix トップレベルキューディレクトリの場所。 syslog_facility (mail) Postfix ロギングの syslog facility 名。 syslog_name (postfix) 例えば "smtpd" が "postfix/smtpd" となるようにするために syslog レコードのプロセス名の前に付けられるメールシステムの名前。 関連項目 sendmail(1), sendmail 互換ユーザインターフェース postqueue(1), 権限のないキュー操作 ライセンス The Secure Mailer license はこのソフトウェアと一緒に配布されなければい けません。 作者 Wietse Venema IBM T.J. Watson Research P.O. Box 704 Yorktown Heights, NY 10598, USA POSTSUPER(1)