web-dev-qa-db-ja.com

crontabは1か月前のメールを送信します

ubuntu 14.04メールサーバー:Postfix

rootはcrontabから数十通の電子メールを受信します。これらのメールにはPHP警告が含まれています。

  • これらの警告の原因を修正しました。
  • メールを送信しないようにすべてのcronjobsを修正しました(>/dev/null 2>&1に送信される出力)
  • 以前のメールをすべて削除しました

    / var/mail/root

    / var/pool/mail/root

しかし、私はまだ1時間に数十通の電子メールを受信して​​います。これらのメールはcronjobsから送信されたもので、1か月近く経過していることもあります。

わかりません。これらのメールはどこから送信され、どこに保存されますか?

11
pixeline

これらは、メールキューにある未配信の古いメールです。それらを取り除きたい場合は、それらを見つけて削除する必要があります。

mailqを使用して確認し、postsuper -d ALLを使用してそれらをすべて一度に削除できます。

注意すべきいくつかのポイント:

  • 比較的古い電子メールの受信を開始するときはいつでも、それらの電子メールがどこか(ローカルサーバーまたはリモートの実際のいずれか)でキューに入れられ、現在配信されていることを確認できます。

  • Postfixのキュー全体を表示するには、mailqまたはpostqueue -pを使用でき、出力は同じです。コマンド出力がすべてのメールを一度にダンプしようとするため、キューに数千のメールがある場合、これは効果がないことがわかります。その場合、mailq | moreのようなコマンドを使用できます。

  • 必要なメールがキューに残っている場合は、postfix flushまたはpostfix -fを使用して、キューをフラッシュしようとするか、つまり、すぐに送信しようとします。
  • キューに多くの遅延メールがあり、それらを排他的に削除したい状況では、postsuper -d ALL deferredを使用できます。
  • qshapeは、mailqを調べるときにも非常に便利なコマンドです。 Postfixボトルネック分析 を確認してください。
20
Diamond

これは、キューに入れられ、現在配信されているメッセージのように聞こえます。それらのメッセージがあなた自身のサーバーから発信された場合、それらは/var/spool/postfix送信メールキューとコマンドSudo showqまたはSudo postqueue -pは、キューに残っている未配信のメッセージを一覧表示する必要があります。

/ var/spool/mail/rootはデフォルトのメールボックスの場所であり、すでに最終宛先に配信されているメールが含まれています。そこからメッセージを削除しても、新しいメッセージの到着を妨げることはありません:)

このQ&A キューをクリーンアップするのに役立つ可能性があります

4
HBruijn