• 締切済み

mbox形式で古いメールの削除方法を教えてください

mbox形式で30日以上古いメールを削除するような機能を実装したいです。 何かうまい方法はありませんでしょうか? 既存のmbox形式環境を変更したくないため、 以下のような事をMail Box形式に対して行いたいです。 ■cron を設定することで30日以上古いメールを削除する 5 5 * * * find /path/to/Maildir -type f -mtime +30 -exec rm {} \; <環境> postfix 2.6.6 dovecot 2.0.9 Mail Box形式 centos 6.4

みんなの回答

  • notnot
  • ベストアンサー率47% (4900/10359)
回答No.1

PerlかRubyを使って、mbox形式をハンドリングできるライブラリを使うのが多分正道でしょう。 From行に正しく日時がセットされているという前提があれば、下記で出来ます。 (grep '^From ' で確認してください) #!/bin/sh FILE="$1" KIGEN=`date +%s -d "30 days ago"` TEMP=/tmp/tmp$$ trap "rm -f $TEMP" 0 1 2 3 4 5 6 7 8 10 11 12 13 14 15 while set -- `head -1 "$FILE"` DATE=`date +%s -d "$3 $4 $5 $6 $7"` test $DATE -lt $KIGEN do awk '/^From /{if(NR!=1)F=1} F{print}' "$FILE" > $TEMP && mv $TEMP "$FILE" done

関連するQ&A