これがEXIMメールキューを消去する正しい方法ですか?

これがEXIMメールキューを消去する正しい方法ですか?

次のコマンドを使用して、exim メールキューを削除します。

exiqgrep -i | xargs exim -Mrm

または

# following commands seems to work faster compared to the above.
exim -bpru | awk {'print $3'} | xargs exim -Mrm

ただし、メールキューのサイズが100,000を超えると、上記のコマンドは機能しません。ついています。したがって、キュー内のメッセージの数に関係なく、うまく機能する次のスクリプトを使用します。

私の質問は正しく削除されますか?

/etc/init.d/exim stop;
sleep 10;
killall -9 exim eximd
sleep 5;

#clean out the mail queue
find /var/spool/exim -mindepth 2 -type f -exec rm -rfv {} \;

#clean out the mail db files
find /var/spool/exim/db -type f -exec rm -rvf {} \;

/etc/init.d/exim restart

ベストアンサー1

私はあなたがこれを探していると信じています...

service exim stop
rm -fvr /var/spool/exim/input
service exim restart

しかし、もう少し合理的なアプローチは、ユーザーごとにメッセージを削除することです。

egrep -Rl "((`pwd | cut -d / -f3`|$(grep `pwd | cut -d / -f3` /etc/userdomains | cut -d : -f1 | tr '\n' '|' | sed 's/|$//g'))|/home/`pwd | cut -d / -f3`)|X-Failed-Recipients" /var/spool/exim/input --include='*-H' | awk -F "/" '{gsub("-[A-Z]$","");print$NF}' | xargs exim -Mrm 

おすすめ記事