Linuxで特定の日付範囲内のメールを削除する必要がある

Linuxで特定の日付範囲内のメールを削除する必要がある

クローンの操作により、Linuxサーバーから100万の電子メールが生成されました。この cron メッセージは、cron ジョブの実行に関連する問題を解決して検索するのに便利なため、メッセージをすべて削除したくありません。そのため、1か月分のEメールをアーカイブし、残りを削除する必要があります。

答え1

mailさまざまなコマンドセットを持つさまざまなコマンドがあります。 POSIXの標準化mailx注文する。

通常、メールボックスには受信した順序で電子メールが含まれています。したがって、古いメッセージを削除するには、通常、数字の低い電子メールを削除します。同様のコマンドを使用してメッセージ範囲を削除できますd 1-42(最初の42メッセージの削除)。

もう少しコントロールしたいならおすすめです愚か、単純なコマンドよりも多くの制御を提供するコマンドラインEメールクライアントですmail。 Muttにはテキストモードのインターフェースがあり、スクリプトで書くこともできます。 Muttでは、以下を使用できます。注文する D削除するメッセージを表示して入力してください。模様 ~d ->1m1か月以上経過したメッセージを選択してください。削除したいメッセージのリストが満たされている場合は、x削除マーク付きメッセージの削除を入力します。

答え2

多くの検索の最後に見つかりました。アーカイブメール古いメールを消去するために使用してください。

構文は次のとおりです。

archivemail -d 30 --delete <path-to-mailbox>

(通常は$MAILローカルメールボックスの場所を定義してecho $MAIL確認してください)。

-n- 試運転)オプション。

答え3

私はしばらく同じ問題を抱えていて、私が管理しているメールサーバーに対する簡単な答えを見つけるために、インターネット検索は予想以上に困難です。

ファイルシステムを頻繁に入力し、次のcronジョブを実行する単一ユーザーのメールボックスからメッセージを削除する必要があります。

18 5 * * * /usr/bin/mutt -f /var/spool/mail/developer -e "push D~d>7d<enter>qy<enter>"

または、毎日05:18にファイル(この場合はディレクトリ)/var/spool/mail/developerでmuttを実行し、muttが起動するまで待機(push)し、削除マーク(D)パターンマッチング(〜)日付(d ))7日以上(> 7d)、コマンドを終了したら終了(q)して削除確認(y)

答え4

mutt正規表現、詳細を使用して削除できます。ここそしてここ

関連情報