sendmailのメールキューを削除する
運用中のサーバの1台で、
配信不能の宛先へのメールキューが溜まっており、
いいかげん削除してみることにしましたので、
その手順やらを記録しておきます。
[root@server]# mailq
/var/spool/mqueue (147 requests)
—–Q-ID—– –Size– —–Q-Time—– ————Sender/Recipient———–
o165F7RP015827 6938 Sat Feb 6 14:15 <apache@mail.example.com>
8BITMIME (Deferred: syslog.example.com.: No route to host)
<devi@example.com>
・
・
・
その数147通!(笑)
実際のメールは、/var/spool/mqueue 内に、
メール毎のファイルとして保存されています。
[root@server]# pwd
/var/spool/mqueue
[root@server]#
[root@server]# ls -lt
合計 1188
-rw——- 1 root smmsp 1471 2月 6 14:44 qfo118kvXr031418
-rw——- 1 root smmsp 1450 2月 6 14:44 qfo11Ab7V7031921
・
・
・
-rw——- 1 root smmsp 1232 2月 1 19:37 dfo11Ab7V7031921
-rw——- 1 root smmsp 793 2月 1 17:46 dfo118kvXr031418
上記のように/var/spool/mqueue 内に、
mailqコマンドで確認できた、Q-ID に対応したファイルが並んでいることが分かります。
ここで注目したいのが、メールキュー1つにつき、ファイルが2つあるという点です。
テキストファイルですので、catコマンドなどで中身を見てみれば分かりますが、
qf から始まるファイルは、ヘッダー情報が格納されていて、
df から始まるファイルには、本文が格納されています。
という訳で、不要なメールキューを削除する場合は、
ファイルをセットで消してあげればOKです。
試しに、Q-ID「o165F7RP015827」のファイルを削除してみます。
[root@server]# ls -l|grep o165
-rw——- 1 root smmsp 6938 2月 6 14:15 dfo165F7RP015827
-rw——- 1 root smmsp 1458 2月 6 14:44 qfo165F7RP015827
[root@server]#
・先頭が df と qf の指定したメールファイルを削除
[root@server]# rm -f [dq]fo165F7RP015827
[root@server]#
・ファイル削除の確認
[root@server]# ls -l|grep o165
[root@server]#
・メールキューの確認
[root@server]# mailq
/var/spool/mqueue (146 requests)
—–Q-ID—– –Size– —–Q-Time—– ————Sender/Recipient———–
o164D7Zl015469 5806 Sat Feb 6 13:13 <apache@mail.example.com>
8BITMIME (Deferred: syslog.example.com.: No route to host)
<devi@example.com>
・
・
・
mailqコマンドで確認しても、Q-ID「o165F7RP015827」のメールキューは無くなり、
残りキューの数も、147件から146件に減りました。
でもまだ146件もある!!
キューを1件ずつ削除していくのは効率が悪いので、
全て不要なメールと判断できる場合は、一気に削除してしまいましょう。
findコマンドを使えば、少しだけ幸せになれます。
[root@server]# find /var/spool/mqueue/ -type f
/var/spool/mqueue/dfo130k5c4029132
/var/spool/mqueue/qfo1312BjK029216
/var/spool/mqueue/dfo11DZgf0004657
・
・
[省略]
[root@server]#
・メールファイルの一括削除
[root@server]# find /var/spool/mqueue/ -type f -exec rm -rf {} \;
[root@server]#
・ファイル削除の確認
[root@server]# ls -l
合計 0
[root@server]#
・メールキューの確認
[root@server]# mailq
/var/spool/mqueue is empty
Total requests: 0
[root@server]#
タグ
2010年2月6日 | コメントは受け付けていません。 | トラックバックURL |
カテゴリー:LinuxTips