Linuxでルートメール(メールボックス)ファイルを削除する方法
通常、Linuxのメールサーバーでは、時間が経つにつれて/var/spool/mail/rootファイルのサイズがかなり増加する可能性があります。これは、デフォルトで設定されたさまざまなプログラム、サービス、デーモンがrootアカウントのメールボックスに通知を送信するためです。
もしルートメールボックスファイルのサイズが大幅に増加した場合、ディスクまたはパーティションのスペースを確保するためにファイルを削除する対策を考慮するべきです。
ただし、実際にルートメールメッセージを削除する前に、重要なメールを削除しないように、すべてのルートメールを読むようにしてください。コンソールで、rootとしてシステムにログインし、mailコマンドを実行すれば、自動的にルートアカウントのメールボックスが開かれます。システムにmailコマンドラインユーティリティが存在しない場合は、以下のコマンドを発行してmailxまたはmailutilsパッケージをインストールしてください。
# yum install mailx [On CentOS/RHEL/Fedora]
apt-get install mailutils [On Debian/Ubuntu]
最も簡単な方法は、Linux stdout リダイレクションを使用してファイルに出力することです。この方法で、メールボックスファイルを切り詰めることができます。以下の例で示します。
# > /var/spool/mail/root
ルートアカウントのメールボックスファイルを切り捨てるために使用できる別の方法は、特別なLinuxファイルである/dev/null(Linuxのブラックホールファイル)の内容をcatコマンドで読み取り、その出力をルートメールボックスファイルにリダイレクトすることです。以下の例に示すように、/dev/nullファイルの内容を読むと、すぐにEOF(ファイルの終わり)が返されます。
# cat /dev/null > /var/spool/mail/root
ファイルを切り詰めた後、catコマンドやmoreまたはlessコマンドを使用して、rootアカウントのメールボックスファイルの内容を確認し、ファイルの内容が正常に消去されたかどうかを判断します。
lessコマンドは即座にファイルの終わりを返すべきです。
ルートアカウントのメールボックスファイルを切り詰めるプロセスを自動化するには、以下の例のように毎晩真夜中に実行するcrontabジョブを追加します。
# 0 0 * * * cat /dev/null > /var/spool/mail/root 2>&1 > truncate-root-mail.log
それでおしまいです!ルートメールボックスを削除する他の方法をご存知の場合は、下のコメントセクションでぜひ教えてください。
