Mboxファイルに書き込むときにprocmailファイルのロックタイムアウトに関する次の問題を見た人はいますか?これは、次のprocmailrcを持つユーザーの場合、数週間ごとに発生します。
:0 c: #copy all mail to "bkp"
bkp
ほとんどの場合、これは問題なく機能します。数週間ごとに、次のメッセージがprocmailログに表示されます。
procmail: Forcing lock on "bkp"
procmail: Timeout, was waiting for "bkp"
Postfixコマンドのタイムアウト(現在は1時間に設定されています)が発生する前に、procmailがロックを解除できる(またはロックが消える)場合があります。それ以外の場合、メール配信は次のように失敗します。
relay=local, delay=2001, delays=0.78/0.05/0/2000, dsn=5.3.0,
status=bounced (Command time limit exceeded: "procmail -t -f-")
Bkpファイルは非常に大きい(10ギガバイトを超える)が、問題のインスタンスの間に数週間の断続的な問題があり、同じprocmailrcおよびギガバイトサイズのファイルを持っている他のユーザーには発生しません(ただし、これほど大きいものはありません) )。
ユーザーはMailDirスタイルのフォルダーを使用したくないので、これをmboxファイルとして保持したいと考えています。 procmailがbkpのロックを待機している間に、ユーザーのメールボックスへのメール配信を許可するようにスクリプトを書き直す方法はありますか?私はもう試した:
:0c #copy all mail to "Saved"
{
:0:
bkp
}
EDIT: wがプログラムを待機していて、このステートメントでは何も実行されていないため、上記のレシピを:0 w:から:0:に変更しました。
テスト中にbkpを手動でロックすると、procmailが再びメールの受け入れを停止する前に2つのメールが許可されます。接尾辞がタイムアウトする前にロックを解除すると、メールが配信されます。また、ロックの問題の根本原因を特定したいのですが、ファイルを自分でロックする以外に、まだトリガーできていません。 LOCKTIMEOUT = 10を追加して、通常のメール配信で成功せずに条件を強制しようとしました。
Procmailのバージョン情報は次のとおりです。
procmail v3.22 2001/09/10 Copyright(c)1990-2001、Stephen R. van den Berg Copyright(c)1997-2001、Philip A. Guenther
以下に送信して、procmail関連のメーリングリストに質問/回答を送信します。
そしてもちろん、このリストのサブスクリプションと情報のリクエストは次のとおりです。
ロック戦略:dotlocking、fcntl()デフォルトのrcfile:$ HOME /.procmailrcプライマリグループによって書き込み可能である可能性があります
これが私がしたことです:
問題をテストするために、debian squeezeのvmwareイメージを作成し、マシンのディスクIOPSを40に、メモリを256MBに制限しました。
Postfix、dovecot、procmailを本番マシンでセットアップしたのと同じ方法で使用しました。
私が見つけたもの:
完全に決定的なものではありませんが、procmailがロックしようとしているメールファイルにアクセスするOutlookクライアントに加えて、ディスクの負荷が高いと、postfixで設定されたコマンドタイムアウトに達するほどメール配信が簡単に遅れる可能性があります。
私が試したことのないこと:
より小さな毎日/毎週のバックアップメールボックス/ファイルの使用を検討しましたか?
Cronジョブを使用して、それらをメインバックアップに移動できます。
man procmailex
は、date
出力に基づいて宛先名を取得する方法の例を示しています。man procmail
は、formailを使用してメールボックスファイルを後処理する方法の例を示していますロックあり。