サーバーを運用していると、

rootのメールボックスにたくさんのメールが届いている。

中身はスパムメール、crontab 、ミドルソフトからの通知メール、ログメールなどだ。

定期的に削除しないと、すぐに容量オーバーしてしまうので、

今回は、定期的に不要メールを削除するバッチを作成したので、メモりたいと思います。

まず、コマンドプロンプトから、メールボックスのメールを全て削除する場合。

mail -u root

として、「root」のメールボックスに入り

delete *

とする

メールボックスから出るときは、

quit

と入力する。

この方法だと、対話式で入力処理する必要があるので、バッチ化はできない。

しかし、そんなときに対話式入力を実現する便利なソフトが「expect」だ!

freeBSD portsの場合、次を実行すればインストールできる。

cd /usr/ports/lang/expect; make install clean

それでは早速、バッチファイルの中身です。

——————————————————————————————-
#!/bin/sh
# mail box clean up
#

# remove root mail box
/usr/local/bin/expect -c ”
set timeout 60
spawn mail -u root

expect \”& \”;
send \”delete *\r\”;

expect \”& \”;
send \”quit\r\”;

# remove massage queue
rm -f /var/spool/mqueue/*
——————————————————————————————-

各行が何をしているか、説明する必要がないほどシンプルですので、説明を省略します。

実行は自己責任です。不安を感じましたら、弊社タイルテクノへご依頼ください。

hoge_user